POJ.docx
- 文档编号:20148499
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:24
- 大小:25.79KB
POJ.docx
《POJ.docx》由会员分享,可在线阅读,更多相关《POJ.docx(24页珍藏版)》请在冰豆网上搜索。
POJ
POJ是“北京大学程序在线评测系统”(PekingUniversityOnlineJudge)的缩写,是个提供编程题目的网站,兼容Pascal、C、C++、Java、Fortran、Python等多种语言。
“北京大学程序在线评测系统”是一个免费的公益性网上程序设计题库,它包含2000多道饶有趣味的程序设计题,题目大部分来自ACM国际大学生程序设计竞赛,很多题目就反映工作和生活中的实际问题。
用户可以针对某个题目编写程序并提交,让POJ自动判定程序的对错,几秒之内即可知道对还是错。
作为教学支持,每个学生在POJ上可以建立自己的账号,教师在POJ上一眼就能看到布置的习题学生是否已经完成,这几乎将教师评判学生作业的工作量减少到零。
POJ对于程序的正确性评判是极为严格的,不仅逻辑要对,而且数据的格式也要对。
这对于培养严谨、周密的程序设计作风极为有效,学生必须考虑到每一个细节和特殊边界条件,而不是大体上正确就能通过。
传统的人工评判是难以做到这一点的。
主流算法
1、搜索 //回溯
2、DP(动态规划)//记忆化搜索
3、贪心
4、图论 //最短路径、最小生成树、网络流、二分图匹配、最大流、最小割、拓扑排序、欧拉回路
5、数论 //组合数学(排列组合)、递推关系、质因数法
6、计算几何 //凸壳、同等安置矩形的并的面积与周长、凸包计算问题
8、模拟
9、数据结构 //并查集、堆、树形结构、树状数组
10、博弈论
11、简单题
题目分类
1、排序
1423,1694,1723,1727,1763,1788,1828,1838,1840,2201,2376,2377,2380,1318,1877,1928,1971,1974,1990,2001,2002,2092,2379,
1002(需要字符处理,排序用快排即可)1007(稳定的排序)2159(题意较难懂)22312371(简单排序)2388(顺序统计算法)2418(二叉排序树)
2、搜索、回溯、遍历
10221111d111811291190156215641573165521842225224323122362237823861010,1011,1018,1020,1054,1062,1256,1321,1363,1501,1650,1659,1664,1753,2078
2083,2303,2310,2329
简单:
1128,1166,1176,1231,1256,1270,1321,1543,1606,1664,1731,1742,1745,1847,1915,1950,2038,2157,2182,2183,2381,2386,2426,
不易:
1024,1054,1117,1167,1708,1746,1775,1878,1903,1966,2046,2197,2349,
推荐:
1011,1190,1191,1416,1579,1632,1639,1659,1680,1683,1691,1709,1714,1753,1771,1826,1855,1856,1890,1924,1935,1948,1979,1980,2170,2288,2331,2339,2340,1979(和迷宫类似)1980(对剪枝要求较高)
3、遍历法
10082080(这种题要小心)
4、枚举
1012,1046,1387,1411,2245,2326,2363,2381,1054(剪枝要求较高),1650(小数的精度问题)
5、数据结构的典型算法
容易:
1182,1656,2021,2023,2051,2153,2227,2236,2247,2352,2395,
不易:
1145,1177,1195,1227,1661,1834,
推荐:
1330,1338,1451,1470,1634,1689,1693,1703,1724,1988,2004,2010,2119,2274,1125(弗洛伊德算法),2421(图的最小生成树)
6、 动态规划
1037Adecorativefence、
1050TotheMax、
1088滑雪、
1125StockbrokerGrapevine、
1141BracketsSequence、
1159Palindrome、
1160PostOffice、
1163TheTriangle、
1458CommonSubsequence、
1579FunctionRunFun、
1887TestingtheCATCHER、
1953WorldCupNoise、
2386LakeCounting
7、贪心
1042,1065,1230,1323,1477,1716,1784,13281755(或用单纯形方法),2054,1017,1328,1862,1922,2054,2209,2313,2325,2370。
8、模拟
容易:
1006,1008,1013,1016,1017,1169,1298,1326,1350,1363,1676,1786,1791,1835,1970,2317,2325,2390,
不易:
1012,1082,1099,1114,1642,1677,1684,1886,12811928208321412015
9、递归
1664
10、字符串处理
1488,1598,1686,1706,1747,1748,1750,1760,1782,1790,1866,1888,1896,1951,2003,2121,2141,2145,2159,2337,2359,2372,2406,2408,1016105111261318157219171936203920832136227123172330,21212403
11、数论
1006,1014,1023,1061,1152,1183,1730,2262
12、几何有关的题目
凸包:
1113,1228,1794,2007,2187,1113wall,2187beautycontest
容易:
1319,1654,1673,1675,1836,2074,2137,2318,
不易:
1685,1687,1696,1873,1901,2172,2333,
13、任意精度运算、数字游戏、高精度计算
10011023104710601079113111401142120712201284128913061316133814051454150315041519156516501969200020062081224722622305231623891001,1220,1405,1503,1001(高精度乘法)2413(高精度加法,还有二分查找)
14、概率统计
1037,1050
15、最小费用最大流
2195goinghome,2400supervisor,supervisee,1087aplugforUNIX,1149PIGS,1273drainageditches,1274theperfectstall,1325machineschedule,1459powernetwork,2239selectingcourses
16、压缩存储的DP
1038bugsintegratedinc,1185炮兵阵地,2430lazycow
17、最长公共子串(LCS)
1080humangenefunctions,1159palindrome,1458commonsubsequence,2192zipper
18、图论及组合数学
2421ConstructingRoads、
2369Permutations、
2234MatchesGame、
2243KnightMoves、
2249BinomialShowdown、
2255TreeRecovery、
2084GameofConnections、
1906Threepowers、
1833排列、
1850Code、
1562OilDeposits、
1496WordIndex、
1306Combinations、
1125StockbrokerGrapevine、
1129ChannelAllocation、
1146IDCodes、
1095TreesMadetoOrder、找规律
2247HumbleNumbers、
2309BST、
2346Luckytickets、
2370Democracyindanger、
2365Rope、
2101HoneyandMilkLand
2028WhenCanWeMeet?
、
2084GameofConnections、
1915KnightMoves、
1922RidetoSchool、
1941TheSierpinskiFractal、
1953WorldCupNoise、
1958StrangeTowersofHanoi、
1969CountonCanton、
1806Manhattan2025、
1809Regetni、
1844Sum、
1870BeeBreeding、
1702Eva\'sBalance、
1728Afleaonachessboard、
1604JusttheFacts、
1642StackingCubes、
1656CountingBlack、
1657DistanceonChessboard、
1662CoIns、
1663NumberSteps、
1313BookletPrinting、
1316SelfNumbers、
1320StreetNumbers、
1323GamePrediction、
1338UglyNumbers、
1244SlotsofFun、
1250TanningSalon、
1102LC-Display、
1147Binarycodes、
1013CounterfeitDollar、
19、博弈类
1067取石子游戏、
1740ANewStoneGame、
2234MatchesGame、
1082CalendarGame、
2348Euclid\'sGame、
2413HowmanyFibs?
、
2419Forest
20、简单、模拟题
1001Exponentiation、
1002487-3279、
1003Hangover、
1701DissatisfyingLift、
2301BeattheSpread!
、
2304CombinationLock、
2328GuessingGame、
2403HayPoints、
2406PowerStrings、
2339Rock,Scissors,Paper、
2350AboveAverage、
2218DoesThisMakeMeLookFat?
、
2260ErrorCorrection、
2262Goldbach\'sConjecture、
2272Bullseye、
2136VerticalHistogram、
2174DecodingTask、
2183BovineMathGeniuses、
2000GoldCoins、
2014FlowLayout、
2051Argus、
2081Calendar、
1918RankingList、
1922RidetoSchool、
1970TheGame、
1972DiceStacking、
1974TheHappyWorm、
1978HanafudaShuffle、
1979RedandBlack、
1617CryptoColumns、
1666CandySharingGame、
1674SortingbySwapping、
1503IntegerInquiry、
1504AddingReversedNumbers、
1528Perfection、
1546BasicallySpeaking、
1547ClayBully、
1573RobotMotion、
1575EasierDoneThanSaid?
、
1581AContestingDecision、
1590Palindromes、
1454FactorialFrequencies、
1363Rails、
1218THEDRUNKJAILER、
1281MANAGER、
1132Border、
1028WebNavigation、
21、初等数学
1003Hangover、
1045BodePlot、
1254HanselandGrethel、
1269IntersectingLines、
1401Factorial、
1410Intersection、
2363Blocks、
2365Rope、
2242TheCircumferenceoftheCircle、
2291RottenRopes、
2295ADPProblem、
2126FactoringaPolynomial、
2191MersenneCompositeNumbers、
2196SpecializedFour-DigitNumbers、
1914Cramer\'sRule、
1835宇航员、
1799Yeehaa!
、
1607Deck、
1244SlotsofFun、
1269IntersectingLines、
1299PolarExplorer、
1183 反正切函数的应用、
22、匹配
1274,1422,1469,1719,2060,2239,
23、简单题:
其中比较经典的有1000等
-------------------------------------------------------------------------------------------
经典题目
1011(搜索好题)
1012(学会打表)
1013
1019(它体现了很多此类问题的特点)
1050(绝对经典的dp)
1088(dp好题)
1157(花店,经典的dp)
1163(怎么经典的dp那么多呀?
?
?
)
1328(贪心)
1458(最长公共子序列LCS)
1647(很好的真题,考临场分析准确和下手迅速)
1654(学会多边形面积的三角形求法)
1655(一类无根树的dp问题)
1804(逆序对)
2084(经典组合数学问题)
2187(用凸包求最远点对,求出凸包后应该有O(N)的求法,可我就是调不出来)
2195(二分图的最佳匹配)
2242(计算几何经典)
2295(等式处理)
2353(dp,但要记录最佳路径)
2354(立体解析几何)
2362(搜索好题)
2410(读懂题是关键)
2411(经典dp)
趣味
1067(很难的数学,但仔细研究,是一片广阔的领域)
1147(有O(n)的算法,需要思考)
1240(知道一棵树的先序和后序遍历,那么有几种中序遍历呢?
dp)
1426(是数论吗?
错,是图论!
)
1648(别用计算几何,用整点这个特点绕过精度的障碍吧)
1833(找规律)
1844(貌似dp或是搜索,其实是道有趣的数学题)
1922(贪心,哈哈)
2231
2305(不需要高精度噢)
2328(要仔细噢)
2356(数论知识)
2359(约瑟夫问题变种)
2392(有趣的问题)
很繁的题
1001
1008
1087(构图很烦,还有二分图的最大匹配)
1128(USACO)
1245
1329
1550(考的是读题和理解能力)
1649(dp)
2200(字符串处理+枚举)
2358(枚举和避免重复都很烦)
2361(仔细仔细再仔细)
难题
1014(数学证明比较难,但有那种想法更重要)
1037(比较难的dp)
1405(高精度算法也分有等级之分,不断改进吧)
2002(不知道有没有比O(n^2*logn)更优的算法?
)
2054(极难,很强的思考能力)
2085(组合数学)
2414(dp,但要剪枝)
2415(搜索)
2423(计算几何+统计)
多解题
1002(可以用排序,也可以用统计的方法)
1338(搜索和dp都可以)
1664(搜索和dp都练一练吧)
2082(这可是我讲的题噢)
2352(桶排和二叉树都行)
Note:
1011:
很经典的剪支
1014:
难在数学上
1017:
严格的数学证明貌似不容易
1021:
有点繁,考察对图形进行各种旋转的处理
1083:
巧妙的思考角度
1150:
分奇偶讨论,lg(n)算法
1218:
三行就够了,虽然简单,但也有优劣之别
1505:
二分加贪心
1654:
做法也许很多吧,本人用有向面积做的
1674:
计算圈的个数(算是graph吧)
1700:
数学证明不容易
1742:
O(m*n)的算法
1863:
要耐心地慢慢写…
1988:
并查集
2051:
堆
2078:
不难,但剪支可以做到很好
2082:
:
O(n),你想到了吗?
2084:
卡特兰数
2182:
线段树
2195:
最小费用最大流
2234:
经典博弈算法
2236:
并查集
2299:
二分思想
2395:
Kruskal最小生成树的拓展
2406:
KMP
2411:
用二进制串
学习过程
OJ上的一些水题(可用来练手和增加自信)
(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094)
初期
一.基本算法:
(1)枚举.(poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分治法.
(4)递推.
(5)构造法.(poj3295)
(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
(1)图的深度优先遍历和广度优先遍历.
(2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
(3)最小生成树算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
(4)拓扑排序 (poj1094)
(5)二分图的最大匹配(匈牙利算法)(poj3041,poj3020)
(6)最大流的增广路算法(KM算法).(poj1459,poj3436)
三.数据结构:
(1)串(poj1035,poj3080,poj1936)
(2)排序(快排、归并排(与逆序数有关)、堆排)(poj2388,poj2299)
(3)简单并查集的应用.
(4)哈希表和二分查找等高效查找法(数的Hash,串的Hash)
(poj3349,poj3274,poj2153,poj1840,poj2002,poj2503)
(5)哈夫曼树(poj3253)
(6)堆
(7)trie树(静态建树、动态建树)(poj2513)
四.简单搜索
(1)深度优先搜索(poj2488,poj3083,poj3009,poj1321,poj2251)
(2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.动态规划
(1)背包问题.(poj1837,poj1276)
(2)型如下表的简单DP(可参考lrj的书page149):
1.E[j]=opt{D[i]+w(i,j)}(poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij}(最长公共子序列)
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题)
六.数学
(1)组合数学:
1.加法原理和乘法原理.
2.排列组合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问题
2.进制位.
3.同余模运算.
(poj2635,poj3292,poj1845,poj2115)
(3)计算方法.
1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122)
七.计算几何学.
(1)几何公式.
(2)叉积和点积的运用(如线段相交的判定,点到线段的距离等).(poj2031,poj1039)
(3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交)
(poj1408,poj1584)
(4)凸包.(poj2187,poj1113)
中级
一.基本算法:
(1)C++的标准模版库的应用.(poj3096,poj3007)
(2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706)
二.图算法:
(1)差分约束系统的建立和求解.(poj1201,poj2983)
(2)最小费用最大流(poj2516,poj2516,poj2195)
(3)双连通分量(poj2942)
(4)强连通分支及其缩点.(poj2186)
(5)图的割边和割点(poj3352)
(6)最小割模型、网络流规约(poj3308,)
三.数据结构.
(1)线段树.(poj2528,poj2828,poj2777,poj2886,poj2750)
(2)静态二叉检索树.(poj2482,poj2352)
(3)树状树组(poj119
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POJ
![提示](https://static.bdocx.com/images/bang_tan.gif)