poj题目分类 很有层次感

poj题目分类 很有层次感
poj题目分类 很有层次感

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,POJ2151,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+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)树状树组(poj1195,poj3321)

(4)RMQ. (poj3264,poj3368)

(5)并查集的高级应用. (poj1703,2492)

(6)KMP算法. (poj1961,poj2406)

四.搜索

(1)最优化剪枝和可行性剪枝

(2)搜索的技巧和优化(poj3411,poj1724)

(3)记忆化搜索(poj3373,poj1691)

五.动态规划

(1)较为复杂的动态规划(如动态规划解特别的施行商问题等)

(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)

(2)记录状态的动态规划. (POJ3254,poj2411,poj1185)

(3)树型动态规划(poj2057,poj1947,poj2486,poj3140)

六.数学

(1)组合数学:

1.容斥原理.

2.抽屉原理.

3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026).

4.递推关系和母函数.

(2)数学.

1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)

2.概率问题. (poj3071,poj3440)

3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)

(3)计算方法.

1.0/1分数规划. (poj2976)

2.三分法求解单峰(单谷)的极值.

3.矩阵法(poj3150,poj3422,poj3070)

4.迭代逼近(poj3301)

(4)随机化算法(poj3318,poj2454)

(5)杂题.

(poj1870,poj3296,poj3286,poj1095)

七.计算几何学.

(1)坐标离散化.

(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).

(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)

(3)多边形的内核(半平面交)(poj3130,poj3335)

(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)

高级:

一.基本算法要求:

(1)代码快速写成,精简但不失风格

(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)

(2)保证正确性和高效性. poj3434

二.图算法:

(1)度限制最小生成树和第K最短路. (poj1639)

(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)

(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446

(3)最优比率生成树. (poj2728)

(4)最小树形图(poj3164)

(5)次小生成树.

(6)无向图、有向图的最小环

三.数据结构.

(1)trie图的建立和应用. (poj2778)

(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和在线算法

(RMQ+dfs)).(poj1330)

(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的

目的). (poj2823)

(4)左偏树(可合并堆).

(5)后缀树(非常有用的数据结构,也是赛区考题的热点).

(poj3415,poj3294)

四.搜索

(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)

(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A*算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)

(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA*算法. (poj3131,poj2870,poj2286)

五.动态规划

(1)需要用数据结构优化的动态规划.

(poj2754,poj3378,poj3017)

(2)四边形不等式理论.

(3)较难的状态DP(poj3133)

六.数学

(1)组合数学.

1.MoBius反演(poj2888,poj2154)

2.偏序关系理论.

(2)博奕论.

1.极大极小过程(poj3317,poj1085)

2.Nim问题.

七.计算几何学.

(1)半平面求交(poj3384,poj2540)

(2)可视图的建立(poj2966)

(3)点集最小圆覆盖.

(4)对踵点(poj2079)

八.综合题.

(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)

POJ 动态规划题目列表

[1]POJ动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740(博弈), 1742, 1887, 1926(马尔科夫矩阵,求平衡), 1936,1952, 1953, 1958, 1959, 1962, 1975, 1989, 2018, 2029,2039, 2063, 2081, 2082,2181, 2184, 2192, 2231, 2279, 2329, 2336, 2346, 2353,2355, 2356, 2385, 2392, 2424, 不易: 1019,1037, 1080, 1112, 1141, 1170, 1192, 1239, 1655, 1695, 1707,1733(区间减法加并查集), 1737, 1837, 1850, 1920(加强版汉罗塔), 1934(全部最长公共子序列), 1937(计算几何), 1964(最大矩形面积,O(n)算法), 2138, 2151, 2161(烦,没写), 2178, 推荐: 1015, 1635, 1636(挺好的), 1671, 1682, 1692(优化), 1704, 1717, 1722, 1726, 1732, 1770, 1821, 1853, 1949, 2019, 2127, 2176, 2228, 2287, 2342, 2374, 2378, 2384, 2411 状态 DP 树 DP 构造最优解四边形不等式单调队列 1015 Jury Compromise 1029 False coin 1036 Gangsters 1037 A decorative fence 1038 Bugs Integrated, Inc. 1042 Gone Fishing 1050 To the Max 1062 昂贵的聘礼 1074 Parallel Expectations 1080 Human Gene Functions 1088 滑雪 1093 Formatting Text 1112 Team Them Up! 1141 Brackets Sequence 1143 Number Game

西工大新版poj部分题答案

1. #include int main(){ int a[10]={0},i,j,num,count; for(i=2;i<1000;i++){ count=0;num=i; for(j=1;j

.#include #include int main(){ double x1,a,eqs=1,x2; scanf("%lf",&a); x1=a/2; while(fabs(eqs)>=0.00001){ x2=x1; x1=1.0/2*(x1+a/x1); eqs=x2-x1; } printf("%.5lf\n",x1); return 0; } 3.

#include double fun(double x) { return (2*x*x*x-4*x*x+3*x-6); } int main(){ double a,b,x; scanf("%lf%lf",&a,&b); x=(a+b)/2.0; while(fun(x)!=0){ if(fun(x)<0) a=x; else b=x; x=(a+b)/2; } printf("%.2lf\n",x); return 0; } 4.

POJ水题题目

POJ 1247 Magnificent Meatballs Magnificent Meatballs Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5719Accepted: 3837 Description Sam and Ella run a catering service. They like to put on a show when serving meatballs to guests seated at round tables. They march out of the kitchen with pots of meatballs and start serving adjacent guests. Ella goes counterclockwise and Sam goes clockwise, until they both plop down their last meatball, at the same time, again at adjacent guests. This impressive routine can only be accomplished if they can divide the table into two sections, each having the same number of meatballs. You are to write a program to assist them. At these catering events, each table seats 2 <= N <= 30 guests. Each guest orders at least one and at most nine meatballs. Each place at the table is numbered from 1 to N, with the host at position 1 and the host's spouse at position N. Sam always serves the host first then proceeds to serve guests in increasing order. Ella serves the spouse first, then serves guests in decreasing order. The figures illustrate the first two example input cases. Input Input consists of one or more test cases. Each test case contains the number of guests N followed by meatballs ordered by each guest, from guest 1 to guest N. The end of the input is a line with a single zero. Output

ACM计算几何题目总结及分类

COJ https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1011 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1024 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1034 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1035 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1036 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1037 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1038 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1078 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1137 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1172 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1190 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1211 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1230 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1231 https://www.360docs.net/doc/d59359246.html,/oj/prepare.do?fun=viewProblem&pid=1249 https://www.360docs.net/doc/d59359246.html,:8080/COJ/prepare.do?fun=viewProblem&pid=1257 https://www.360docs.net/doc/d59359246.html,:8080/COJ/prepare.do?fun=viewProblem&pid=1260 FOJ Hotter Colder https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1014 求线段的中位线,线段相交求交点,求凸多边形的面积, 无归之室 https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1016 本题精度要求非常高,用三角函数的话,很容易就wa.. Reflections https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1035 求一条射线遇到圆后的反射光, 即圆和直线求交点,求点关于交点法线的对称点。 Pipe https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1088 求一条光线从管道口进入,最远能达到多远。 判断线段左右位置关系,求线段相交交点。 A Pilot in Danger! https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1120 判断点在区域内 Area in Triangle https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1195 在三角形内的气球膨胀,求膨胀后的面积。 分情况推公式 Triangle https://www.360docs.net/doc/d59359246.html,/problem.php?pid=1302 在给定的n(1<=n<=50000)个点中,取3个点组成三角形,求面积最大。

poj刷题专题训练3

(一):用的比较多的 初期: 一.基本算法: (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,POJ2151,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+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)

POJ 题目整理

初期: 一.基本算法: (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,POJ2151,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+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)

POJ经典题目分类

POJ推荐50题 第一类动态规划(至少6题,2479 和2593 必做) 2479 和2593 1015 1042(可贪心)1141 1050 1080 1221 1260 2411(稍难)1276 第二类搜索(至少4题) 1011 1033 1129 2049 2056 2488 2492(稍难,也可并查集) 第三类贪心(至少2题) 1065 2054(难)1521 2709 第四类最短路(至少3题) 1062 1125 1797 2253 2679 Bellman-Ford (难) 第五类最小生成树(至少2题, 而且Prim 和Kruskal 至少各用一次) 1251 1258 1789 2485 第六类最大流(至少2题) 1087 1459 1149 2516 (最小费用最大流) (难) 第七类二分图(至少3题) 1325 1469 2195 (KM 算法或最小费用最大流) (难) 2446 1422 and 2594 第八类并查集(至少2题) 1861 1182 (难) 1308 2524 第九类快速查找(B-Search, Hash and so on) (至少3题) 2503 2513 (+Euler回路的判定) 1035 1200 2002 第十类数论(至少2题) 1061 1142 2262 2407 1811(难) 2447 (难) 第十一类线段树(无最少题数要求) 2352 (可用简单方法) 2528

第十二类计算几何(至少2题,1113凸包算法必做) 1113 1292 2148 (难) 2653 1584 第十三类高精度(至少3题,1001必做) 1001 1047 1131 1503 1504 1060 and 1996 (多项式) SCU1002, 1003, 1004 (https://www.360docs.net/doc/d59359246.html,/soj) 第十四类模拟(至少5题) 1029 and 1013 1083 and 2028 2234 and 1067 1012 1026 1068 1120 2271 2632 第十五类数学(至少4题) 2249 1023 2506 1079 1019 and 1095 1905 and 1064 (二分) 说明:递推算动归,离散化算数据结构,并查集算数据结构,博弈算动归,麻烦题一般都是不错的综合题,最短路算图论,数据的有序化算排序 麻烦题: 1697, 1712, 1713, 1720, 1729, 1765, 1772, 1858, 1872, 1960, 1963, 2050, 2122, 2162, 2219, 2237, 简单题目: 1000, 1003, 1004, 1005, 1007, 1046, 1207, 1226, 1401, 1504, 1552, 1607, 1657, 1658, 1674, 1799, 1862, 1906, 1922, 1929, 1931, 1969, 1976, 2000, 2005, 2017, 2027, 2070, 2101, 2105, 2109, 2116, 2136, 2160, 2190, 2232, 2234, 2275, 2301, 2350, 2363, 2389, 2393, 2413, 2419, 推荐: 1063, 1064, 1131, 1140, 1715, 2163, 杂题: 1014, 1218, 1316, 1455, 1517, 1547, 1580, 1604, 1663, 1678, 1749, 1804, 2013, 2014, 2056, 2059, 2100, 2188, 2189, 2218, 2229, 2249, 2290, 2302, 2304, 2309, 2313, 2316, 2323, 2326, 2368, 2369, 2371, 2402, 2405, 2407, 推荐: 1146, 1147, 1148, 1171, 1389, 1433, 1468, 1519, 1631, 1646, 1672, 1681, 1700, 1701, 1705, 1728, 1735, 1736, 1752, 1754, 1755, 1769, 1781, 1787, 1796, 1797, 1833, 1844, 1882, 1933, 1941, 1978, 2128, 2166, 2328, 2383, 2420, 高精度: 1001, 1220, 1405, 1503, 排序: 1002, 1318, 1877, 1928, 1971, 1974, 1990, 2001, 2002, 2092, 2379, 2388, 2418, 推荐: 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 2377, 2380,

POJ题目分类

1000 A+B Problem 送分题 1001 Exponentiation 高精度 1003 Hangover 送分题 1004 Financial Management 送分题 1005 I Think I Need a Houseboat 几何 1006 Biorhythms 送分题 1007 DNA Sorting 送分题 1008 Maya Calendar 日期处理 1010 STAMPS 搜索+DP 1011 Sticks 搜索 1012 Joseph 模拟/数学方法 1014 Dividing 数论/DP?/组合数学->母函数? 1015 Jury Compromise DP 1016 Numbers That Count 送分题 1017 Packets 贪心 1018 Communication System 贪心 1019 Number Sequence 送分题 1020 Anniversary Cake 搜索 1023 The Fun Number System 数论 1025 Department 模拟 1026 Cipher 组合数学 1027 The Same Game 模拟 1028 Web Navigation 送分题 1031 Fence 计算几何 1034 The dog task 计算几何 1037 A decorative fence DP/组合数学 1039 Pipe 几何 1042 Gone Fishing 贪心/DP 1045 Bode Plot 送分题(用物理知识) 1046 Color Me Less 送分题 1047 Round and Round We Go 高精度 1048 Follow My Logic 模拟 1049 Microprocessor Simulation 模拟 1050 To the Max DP 1053 Set Me 送分题 1054 The Troublesome Frog 搜索 1060 Modular multiplication of polynomials 高精度1061 青蛙的约会数论 1062 昂贵的聘礼DP 1064 Cable master DP/二分查找 1065 Wooden Sticks DP 1067 取石子游戏博弈论 1068 Parencodings 送分题 1069 The Bermuda Triangle 搜索

北大 poj acm题目推荐50题

-北大poj acm题目推荐50题 POJ == 北京大学ACM在线评测系统https://www.360docs.net/doc/d59359246.html,/JudgeOnline 1. 标记难和稍难的题目大家可以看看,思考一下,不做要求,当然有能力的同学可以直接切掉。 2. 标记为A and B 的题目是比较相似的题目,建议大家两个一起做,可以对比总结,且二者算作一个题目。 3. 列表中大约有70个题目。大家选做其中的50道,且每类题目有最低数量限制。 4. 这里不少题目在BUPT ACM FTP 上面都有代码,请大家合理利用资源。 5. 50个题目要求每个题目都要写总结,养成良好的习惯。 6. 这50道题的规定是我们的建议,如果大家有自己的想法请与我们Email 联系。 7. 建议使用C++ 的同学在POJ 上用G++ 提交。 8. 形成自己编写代码的风格,至少看上去美观,思路清晰(好的代码可以很清楚反映出解题思路)。 9. 这个列表的目的在于让大家对各个方面的算法有个了解,也许要求有些苛刻,教条,请大家谅解,这些是我们这些年的经验总结,所以也请 大家尊重我们的劳动成果。 10. 提交要求:一个总文件夹名为bupt0xx (即你的比赛帐号), 这个文件夹内有各个题目类别的子目录(文件夹),将相应的解题报告放入对应 类别的文件夹。在本学期期末,小学期开始前,将该文件夹的压缩包发至buptacm@https://www.360docs.net/doc/d59359246.html,。 对于每个题目只要求一个POJxxxx.cpp 或POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个project 。 11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。 下面是一个解题报告的范例: 例如:POJ1000.cpp

POJ经典题答案

2231 # include # include int cmp(const void *a, const void *b) { return *(__int64 *)a - *(__int64 *)b; } int main() { __int64 i, n; __int64 data[10001]; __int64 sum, total, tmp; scanf("%I64d",&n); sum = total = tmp = 0; for(i = 0; i < n; i++) { scanf("%I64d",&data[i]); sum += data[i]; } qsort(data,n,sizeof(data[0]),cmp); for(i = 0; i < n; i++) { tmp += data[i]; total += sum-tmp-(n-i-1)*data[i]+i*data[i]-(tmp-data[i]); } printf("%I64d\n",total); return 1; } 1922 #include using namespace std; struct { double v,t; } rider[10010];

int n; void input() { int i; double temp,mins=100000000; for(i=0;i> rider[i].v >> rider[i].t; temp=4.5/(rider[i].v/3600)+rider[i].t; if(rider[i].t>=0) if(temp using namespace std; struct { double v,t; } rider[10010]; int n; void input() { int i; double temp,mins=100000000; for(i=0;i> rider[i].v >> rider[i].t; temp=4.5/(rider[i].v/3600)+rider[i].t;

牛人的ACM-POJ的题型分类总结!

主流算法: ? 1.搜索//回溯 ? 2.DP(动态规划) ? 3.贪心 ? 4.图论//Dijkstra、最小生成树、网络流 ? 5.数论//解模线性方程 ? 6.计算几何//凸壳、同等安置矩形的并的面积与周长 ?7.组合数学//Polya定理 ?8.模拟 ?9.数据结构//并查集、堆 ?10.博弈论 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(题意较难懂) 2231 2371(简单排序) 2388(顺序统计算法) 2418(二叉排序树) 2、搜索、回溯、遍历 1022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 2386 1010,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、历法 1008 2080 (这种题要小心) 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、动态规划 1037 A decorative fence、 1050 To the Max、 1088 滑雪、 1125 Stockbroker Grapevine、 1141 Brackets Sequence、

北大poj结题报告

北大poj结题报告 篇一:POJ 解题1报告 NO.1011 人工智能? Time Limit: 1000 ms Case Time Limit: 1000 ms Memory Limit: 65535 KB Submit: 254 Accepted: 95 [Prev][Next] Description 人工智能一直是计算机学所追求的一个很高的境界,全世界的计算机学家们至今仍在不断努力力求达到这个境界。 这道题也跟“人工智能”有关。 学过初中物理的同学都应该知道物理学中的这个公式P (功率)=U(电压)I(电流)。如果给定其中的任意两个值,第三个值都是很容易求的,这个就是本题的任务。 Input 既然是人工智能,不要妄想题目会直接告诉你其中的

某两个值。 输入的第一行是一个整数,表示有多少组测试数据。以下每一行是一组测试数据,分别为一句英文句子。你需要从中识别已知和未知,并且求出未知量。需要说明的是,句子中I,U,P三个物理量中已知的两个一定会以I=xA, U=xV,P=xW这样的样式给出(注意单位以及大小写)。在这样的表达式中,可能会在单位(A,V,W)的前面出现表示数量级的字母m、k、M,分别表示毫,千,兆。 Output 对于每一组数据,按以下格式输出三行: 首先输出"Problem #k",k表示当前是第k组测试数据。 然后在下一行输出结果,结果要求单位必须为A,V或者W,并且保留两位小数。最后再输出一个空行。 具体可以参见样例输出。 Sample Input 3 If the voltage is U=200V and the current is I=4.5A, which power is generated? A light-bulb yields P=100W and the voltage is

北京大学JudgeOnline题目分类

POJ(北京大学Online Judge )题目分类 https://www.360docs.net/doc/d59359246.html,/JudgeOnline ACM-题型分类的代码 主流算法: ? 1.搜索//回溯 ? 2.DP(动态规划) ? 3.贪心 ? 4.图论//Dijkstra、最小生成树、网络流 ? 5.数论//解模线性方程 ? 6.计算几何//凸壳、同等安置矩形的并的面积与周长 ? 7.组合数学//Polya定理 ? 8.模拟 ? 9.数据结构//并查集、堆 ? 10.博弈论 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(题意较难懂)2 231 2371(简单排序)2388(顺序统计算法)2418(二*排序树) 2、搜索、回溯、遍历 1022 1111 1118 1129 1190 1562 1564 1573 1655 2184 2225 2243 2312 2362 2378 2386 1010,1011,1018,1020,1054,1062,1256,1321,1363,1501,1650,1659,1664,1753,2078,20 83,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, 233 1, 2339, 2340,1979(和迷宫类似)1980(对剪枝要求较高)

各大OJ题目归类

各大OJ题目归类 —————————–最优化问题————————————- ———————-动态规划 SOJ1162 I-Keyboard SOJ2096 Maximum Submatrix SOJ2111 littleken bg SOJ2505 The County Fair SOJ2818 QQ音速 SOJ2469 Exploring Pyramids SOJ1833 Base Numbers SOJ2009 Zeros and Ones SOJ2032 The Lost House SOJ2289 A decorative fence SOJ2089 lykoo SOJ2440 The days in fzk SOJ2718 Bookshelf SOJ2722 Treats for the Cows(二维状态,0维决策) SOJ2726 Deck of Cards SOJ2729 Space Elevator SOJ2730 Lazy Cows SOJ2702 Alanna SOJ2713 Cut the Sequence SOJ2768 Bomb SOJ2779 Find the max (I) (最大M子段和问题) SOJ2796 Letter Deletion(DP基础题,最长公共子序列问题) SOJ2800 三角形 SOJ2804 Longest Ordered Subsequence (II) SOJ2896 Alphacode (动态规划简单题) SOJ2930 积木城堡 SOJ3037 Painting the balls SOJ3104 Game(注意大数运算,高精度) SOJ3264 Evil Game SOJ3300 Stockholm Coins(背包问题) SOJ3360 Buying Hay(背包问题) SOJ3531 Number Pyramids(背包问题)

poj dp题目列表

[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740(博弈), 1742, 1887, 1926(马尔科夫矩阵,求平衡), 1936, 1952, 1953, 1958, 1959, 1962, 1975, 1989, 2018, 2029, 2039, 2063, 2081, 2082, 2181, 2184, 2192, 2231, 2279, 2329, 2336, 2346, 2353, 2355, 2356, 2385, 2392, 2424, 不易: 1019, 1037, 1080, 1112, 1141, 1170, 1192, 1239, 1655, 1695, 1707, 1733(区间减法加并查集), 1737, 1837, 1850, 1920(加强版汉罗塔), 1934(全部最长公共子序列), 1937(计算几何), 1964(最大矩形面积,O(n)算法), 2138, 2151, 2161, 2178, 推荐: 1015, 1635, 1636(挺好的), 1671, 1682, 1692(优化), 1704, 1717, 1722, 1726, 1732, 1770, 1821, 1853, 1949, 2019, 2127, 2176, 2228, 2287, 2342, 2374, 2378, 2384, 2411 1015 Jury Compromise 1029 False coin 1036 Gangsters 1037 A decorative fence 1038 Bugs Integrated, Inc. 1042 Gone Fishing 1050 To the Max 1062 昂贵的聘礼 1074 Parallel Expectations 1080 Human Gene Functions 1088 滑雪 1093 Formatting Text 1112 Team Them Up! 1141 Brackets Sequence 1143 Number Game 1157 LITTLE SHOP OF FLOWERS 1159 Palindrome 1160 Post Office 1163 The Triangle 1170 Shopping Offers 1178 Camelot 1179 Polygon 1180 Batch Scheduling 1185 炮兵阵地 1187 陨石的秘密 1189 钉子和小球 1191 棋盘分割

poj分类

vector: Constructors 构造函数 Operators 对vector进行赋值或比较 assign() 对Vector中的元素赋值 at() 返回指定位置的元素 back() 返回最末一个元素 begin() 返回第一个元素的迭代器 capacity() 返回vector所能容纳的元素数量(在不重新分配内存的情况下)clear() 清空所有元素 empty() 判断Vector是否为空(返回true时为空) end() 返回最末元素的迭代器(译注:实指向最末元素的下一个位置) erase() 删除指定元素 front() 返回第一个元素 get_allocator() 返回vector的内存分配器 insert() 插入元素到Vector中 max_size() 返回Vector所能容纳元素的最大数量(上限) pop_back() 移除最后一个元素 push_back() 在Vector最后添加一个元素 rbegin() 返回Vector尾部的逆迭代器 rend() 返回Vector起始的逆迭代器 reserve() 设置Vector最小的元素容纳数量 resize() 改变Vector元素数量的大小 size() 返回Vector元素数量的大小 swap() 交换两个Vector list: assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一个元素 front() 返回第一个元素 get_allocator() 返回list的配置器 insert() 插入一个元素到list中 max_size() 返回list能容纳的最大元素数量 merge() 合并两个list pop_back() 删除最后一个元素 pop_front() 删除第一个元素 push_back() 在list的末尾添加一个元素 push_front() 在list的头部添加一个元素 rbegin() 返回指向第一个元素的逆向迭代器 remove() 从list删除元素

相关主题