OJ == 北京大学ACM在线评测系统 http://acm.pku.edu.cn/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@gmail.com 。
对于每个题目只要求一个 POJxxxx.cpp 或 POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个 project 。
11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。
下面是一个解题报告的范例:
例如:POJ1000.cpp
//考查点:会不会编程序。
//思路:此题要求输入两个数, 输出两个数的和,我用 scanf 和 printf。
//提交情况:Wrong Answer 1次,忘了写 printf()。
Compile Error 2次,选错了语言,由于C++ 和 G++ 在 iostream.h 的不用引用方法;少一个大括号。
Accepted 1次。
//收获:学到了 scanf, printf 的基本用法,熟悉了 OJ 的系统环境。
//经验: 写好代码后本地编译 而且需要静态 观察,杜绝编译错误。
// AC Code
#include <stdio.h>
int main() {
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 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 (http://acm.scu.edu.cn/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 (二分)
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@gmail.com 。
对于每个题目只要求一个 POJxxxx.cpp 或 POJxxxx.java (xxxx表示POJ该题题号) 的文件,注意不要加入整个 project 。
11. 如果有同学很早做完了要求的题目,请尽快和我们联系,我们将指导下一步的训练。
下面是一个解题报告的范例:
例如:POJ1000.cpp
//考查点:会不会编程序。
//思路:此题要求输入两个数, 输出两个数的和,我用 scanf 和 printf。
//提交情况:Wrong Answer 1次,忘了写 printf()。
Compile Error 2次,选错了语言,由于C++ 和 G++ 在 iostream.h 的不用引用方法;少一个大括号。
Accepted 1次。
//收获:学到了 scanf, printf 的基本用法,熟悉了 OJ 的系统环境。
//经验: 写好代码后本地编译 而且需要静态 观察,杜绝编译错误。
// AC Code
#include <stdio.h>
int main() {
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a+b);
return 0;
}
第一类 动态规划 (至少6题,2479 and 2593必做)
2479 and 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 (http://acm.scu.edu.cn/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 (二分)