工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 10724|回复: 7

ACM培训计划与我推荐的书籍

[复制链接]
发表于 2008-4-9 16:56 | 显示全部楼层 |阅读模式
虽然这里很少人玩acm

但也有一部分
有些人不知道具体方向
整理出这些资料,与喜欢的人共享

里面的ecust培训计划
具体到知识点,与题目的号码

zju表示acm.zju.edu.cn这个网站里面problem的题目

那天与老师,师兄感叹 周边几所学校的学术氛围。不管了,自己注意就是。

大家加油!

符件内容帖在3,4楼了
如果LZ觉得不妥,可直接PM我


[ 本帖最后由 iptton 于 2008-4-9 18:21 编辑 ]

小东整理的推荐书籍与培训计划.rar

7.96 KB, 下载次数:

acm推荐书籍与acm培训计划

 楼主| 发表于 2008-4-9 17:07 | 显示全部楼层
到卓越或者china-pub订购,货到付款很方便):
入门三本:《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材)
程序设计导引及在线实践  作者: 李文新
ACM程序设计培训教程 吴昊

基础提高:
算法艺术与信息学竞赛 第二版 刘汝佳
算法设计与分析  王晓东
算法设计与试验题解 王晓东
科曼:《算法导论》
组合数学 第三版 冯舜玺 译
计算几何-算法设计与分析 周培德
国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计   吴文虎 王建德
  
网络算法与复杂性理论  谢政 李建平
《Concrete Mathematics --- A Foundation For Computer Science》 Ronald L. Graham , Donald E. Knuth , Oren Patashnik《具体数学》(能买到中文版最好)
《计算机程序设计艺术》三卷  Knuth
组合数学的算法与程序设计
《程序设计中的组合数学》 吴文虎
图论的算法与程序设计
图、网络与算法

国际大学生程序设计竞赛辅导教程  郭嵩山 崔昊

《ACM国际大学生程序设计竞赛试题与解析》全部册(吴文虎著,清华大学出版社)
C算法.第1卷,基础、数据结构、排序和搜索(第三版)
C算法(第2卷图算法第3版中文版)译者:周良忠 (美国)塞奇威克著  
国际大学生程序设计竞赛例题解 四本  郭嵩山
回复

使用道具 举报

发表于 2008-4-9 18:18 | 显示全部楼层
cdy20书籍整理(到卓越或者china-pub订购,货到付款很方便):
入门三本:《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材)
程序设计导引及在线实践  作者: 李文新
ACM程序设计培训教程 吴昊


基础提高:
算法艺术与信息学竞赛 第二版 刘汝佳

算法设计与分析  王晓东

算法设计与试验题解 王晓东

科曼:《算法导论》

组合数学 第三版 冯舜玺 译

计算几何-算法设计与分析 周培德

国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计   吴文虎 王建德
  
网络算法与复杂性理论  谢政 李建平

《Concrete Mathematics --- A Foundation For Computer Science》 Ronald L. Graham , Donald E. Knuth , Oren Patashnik《具体数学》(能买到中文版最好)

《计算机程序设计艺术》三卷  Knuth

组合数学的算法与程序设计
《程序设计中的组合数学》 吴文虎

图论的算法与程序设计

图、网络与算法



国际大学生程序设计竞赛辅导教程         郭嵩山 崔昊



《ACM国际大学生程序设计竞赛试题与解析》全部册(吴文虎著,清华大学出版社)

C算法.第1卷,基础、数据结构、排序和搜索(第三版)
C算法(第2卷图算法第3版中文版)译者:周良忠 (美国)塞奇威克著  

国际大学生程序设计竞赛例题解 四本  郭嵩山


训练计划:
http://acm.ecust.edu.cn/training/articles/

先做几组难度最低的题,这些题都来自浙大(ZJU)、北大(PKU)和同济(TOJ)的网站。

有些题的解法几乎一眼可以看出,但对C,C++基本语句的熟悉还是很有好处的。练习这些题还有以下目的:

1. 了解竞赛题的形式

2. 熟悉如何在训练系统中提交做对的题目

      请所有的新队员认真完成以下各题。如果做题遇到困难,如题意难以理解、不知如何着手或不知错在哪里,不要气馁,可以请教别的队员,也可请教教练。我们会尽力帮助你完成这几组中每一道题。但不要复制别人的程序,即便参考了别人的程序,也要亲自再完成一遍。而且不建议过多参考别人程序,这样会消弱训练的效果,也减少了思考的乐趣。

      有些队员可能觉得某些题太简单,但我们还是建议将它们都做掉。因为题目虽然简单,但是再简单的题目都不能保证一次做对,而做错题的各种原因如题意理解错误,格式错误等你都会碰到。了解这些原因对减少错误率很有好处。

做题前请了解一些规范:

1.  main函数应为int型,最后return 0 ,即:

int main()

{

...

   return 0;

}

这样做是因为避免有些编译器报错。

2. 为了便于核对,请在代码开头加上可以表明题目的注释,如:

    //ZJU1001; /*PKU1002 */等



Group 0:热身

再次提醒:做对后别忘提交到训练系统.
编号         来源         题号         标题         评注


        三道都是A+B,而且有样例程序。请自己做一遍,不要拷。
0.1         ZJU         1001         A+B Problem
0.2         PKU         1000         A+B Problem
0.3         TOJ         1000         熟悉一下Online Judge的环境

Group 1:起步

    以下是一些TOJ上的题目,作为起步练习很不错。题目是中文的,但其它形式和比赛题型一样。要注意输出格式。有些题目对格式交待不是很清楚,但这并不是说你可以随意增加空格和空行。遇到这种情况,根据样例输出自行判断。一般行尾没有多余空格。
编号         来源         题号         标题         评注
1.1         TOJ         1001         排版题.输出排列成菱形的字母          
1.2         TOJ         1003         排版题.输出三角形的字符          
1.3         TOJ         1006         敲七          
1.4         TOJ         1007         Step.如何得到输入数据的结束
         
1.5         TOJ         1008         扬辉三角
         
1.6         TOJ         1009         蛇行矩阵        

可以直接在2维数组中填数.

(直接推出每个位置数字的公式和递推公式也可以,但效果并不比前一种方法更有效,而且难度较大)
1.7         TOJ         1015         行编辑器         简单的字符串处理
1.8         TOJ         1019         输入三个自然数          

Group 2:英文题(1)

     以下是ZJU上的题目,ZJU的题都是英文的,有些题难度可能不比上面一组高。但对新队员来说,理解题意本身可能是个难点。  
编号         来源         题号         标题         评注
2.1         ZJU         1048         Financial Management
        只比A+B难一点
2.2         ZJU         1045         HangOver         这一道和下面两道都是简单的计算
2.3         ZJU         1049         I Think I need I boat          
2.4         ZJU         1813         Biker's Trip Odometer          
2.5         ZJU         1057         Undercut          
2.6         ZJU         1113         u Calculate e         没有输入,但要注意格式
2.7         ZJU         1151         Word Reversal         简单的字符串处理
2.8         ZJU         1195         Blowing Fuses         别看题有些长,但其实很简单
2.9         ZJU         1755         Clay Bully          
2.10         ZJU         1760         Doubles          

Group 3:英文题(2)

    下面这些题可能稍微难一些,但与上面一组难度上并没有本质区别。只要仔细想想,应当不难做出。
编号         来源         题号         标题         评注
3.1         ZJU         1489         2^x mod n = 1          
3.2         ZJU         1712         Skew Binary          
3.3         ZJU         1016         Parencodings          
3.4         ZJU         1350         The Drunk Jailer          
3.5         ZJU         1051         A New Growth Industry         这三题可能比较繁琐,做的时候要仔细
3.6         ZJU         1178         Booklet PrintingBook
3.7         ZJU         1078         Palindrom Numbers

Group 4:TOJ前20题中剩余题

    TOJ前20题都是基础题,在第一组练习中已经做了一部分,剩下的这一部分难度肯定比第一组大,但与上一组难度差不多。有几道题涉及更知识,在这依旧被剔除,留着以后做。
编号         来源         题号         标题         评注
4.1         TOJ         1005         母牛生小牛         类似Fibonacci数列,但有区别
4.2         TOJ         1012         约瑟夫问题          
4.3         TOJ         1013         去尾问题          
4.4         TOJ         1014         阶乘结果末尾有多少零?         这两题涉及到一些数学推导,可能难度较大
4.5         TOJ         1016         请求N!左边第二位的数字
4.6         TOJ         1018         编制一个乘法运算的程序
         
4.7         TOJ         1020         字符串编辑




Group 5:基础题继续练习

再补充一些适于基本功练习的题目,供大家继续打好C(C++)与语言基础。

有些题目需要一些数学推算,但都不会超出你们的知识范围。
编号         来源         题号         标题         评注
5.1         ZJU         1763         A Simple Question of Chemistry         极简单
5.2         ZJU         1915         Above Average
        极简单
5.3         ZJU         2104         Let the Balloon Rise         极简单
5.4         ZJU         2201         No Brainer         极简单
5.5         ZJU         2208         To and Fro         极简单,只要读懂题
5.6         ZJU         1797         Least Common Multiple
        想一想如何有效率地求最大公约数和最小公倍数
5.7         ZJU         1629         Counting Triangles          
5.8         ZJU         2015         Number Sequence         注意数列的周期性
5.9         ZJU         1657         Goldbach's Conjecture          
5.10         ZJU         1871         Steps          
5.11         ZJU         1858         Soundex        
5.12         ZJU         1622         Switch          
5.13         ZJU         1160         Biorhythms          
5.14         TOJ         1022         数制转换         要注意如何读入数据
5.15         TOJ         1010         数素数
        注意质数判定的效率

Group 6 高精度运算练习

高精度运算也是基本功之一。

以下各题都牵涉到高精度运算,许多涉及数制转换。但也需注意其它方面。

做题时注意模块化。做完这些题后,你会发现很多功能可以重用。
6.1         ZJU         1272         Numerically Speaking         有样例程序
6.2         ZJU         1292         Integer Inquiry         高精度加法
6.3         ZJU         1205         Martian Addition
        高精度加法,但不是十进制
6.4         ZJU         1073         Round and Round We Go         高精度乘法
6.5         ZJU         1086         Octal Fractions         高精和数制转换
6.6         ZJU         1154         Niven Numbers
        高精和数制转换,注意,长度题目中未明确给定。如果设固定长数组,先设50.如果运行时溢出再往上加。
6.7         ZJU         1210         Reciprocals         高精度除法,同时注意输出格式要求
6.8         ZJU         1962         How Many Fibs?
        高精度加法,以及比较
6.9         ZJU         2017         Simple Arithmetics         涉高精加,减,乘,且格式处理较繁
6.10         ZJU         2241         Fractran         表示一个大数不仅可以用各位数,也可以用它的各因子。这题就是一例。
                                         



Group 6: 模拟类题目专项练习

所谓模拟类题目,就是那些题目详细描述了完成某一过程的步骤,你只须严格按照要求模拟这一过程即可。

这类题目通常不需要很复杂的算法设计,但有些题十分繁琐,稍不小心就会出错。另外,对题意的准确把握也是关键,特别是这些步骤的细节方面,一定要完全搞清楚,不能自己乱猜。

下面的一些模拟类题目都是比较繁琐的,大家做它们时一定要细心,且有足够的耐心。


编号         来源         题号         标题         评注
6.1         ZJU         1072         Microprocessor Simulation          
6.2         ZJU         1208         Roll the Die!          
6.3         ZJU         1710         The Snail          
6.4         ZJU         1723         Board Silly          
6.5         ZJU         1737         Unreliable Message
         
6.6         ZJU         1824         Maze Traversal          
6.7         ZJU         1834         AutoFish
         
6.8         ZJU         1862         Mine Sweeper
         
6.9         ZJU         2240        

Run Length Encoding
         



Group 7: 新一组练习

这一组题目较综合,难度不一。(题目下载)
编号         来源         题号         标题         评注
7.1         ZJU         1068
        P,MTHBGWB          
7.2         ZJU         1146
        LC-Display          
7.3         ZJU         1243
        URLs
         
7.4         ZJU         1115
        Digital Roots          
7.5         ZJU         1180
        Self Numbers          
7.6         ZJU         1337
        Pi          
7.7         ZJU         1312
        Prime Cuts
         
7.8         ZJU         1326
        M*A*S*H
        建议用链表做
7.9         ZJU         1494
        Climbing Worm          
7.10         ZJU         1577
        GCD & LCM          
7.11         ZJU         2122         A Flea on a Chessboard
         
7.12         ZJU         1628
        Diamond          
7.13         ZJU         1630
        Die          
7.14         ZJU         1517
        Grandpa's Rubik Cube
         
7.15         ZJU         1161         Gone Fishing         (新加)贪心经典,可以后再做
                                         

Group 8: 字符串处理


编号         来源         题号         标题         评注
8.1         ZJU         1099
        HTML          
8.2         ZJU         1318
        Table         样例数据
8.3         ZJU         1116         A Well-Formed Problem          
8.4         ZJU         1324         Unix ls         用C语言的用scanf读数据
8.5         ZJU         1295         Reverse Text          
8.6         ZJU         1392         The Hardest Problem Ever          
8.7         ZJU         1325         Palindromes          
8.8         ZJU         1404         Oil Pipeline          
8.9         ZJU         1884         WERTYU          
                                         




Group 9:


编号         来源         题号         标题         评注
9.1         ZJU         2388         Beat the Spread!          
9.2         ZJU         2376         Ants         努力得猜吧
9.3         ZJU         2358         Sum of Factorials         注意0的阶乘
9.4         ZJU         2345         Gold Coins          
9.5         ZJU         2321         Filling Out the Team          
9.6         ZJU         2397         Tian Ji -- The Horse Racing         经典贪心
9.7         ZJU         2316         Matrix Multiplication         线性代数,加组合数学
9.8         ZJU         2301         Color the Ball         离散化坐标
9.9         ZJU         2330         A^B == B^A?         高数题
9.10         ZJU         2329         AB Circle          
9.11         ZJU         2313         Chinese Girls' Amusement          
                                         
                                         
                                         


Group 10:

这组题据金强说是简单题。


编号         来源         题号         标题         评注
10.1         ZJU         2417         Lowest Bit          
10.2         ZJU         2405         Specialized Four-Digit Numbers          
10.3         ZJU         2481         Unique Ascending Array          
10.4         ZJU         2478         Encoding          
10.5         ZJU         2421         Recaman's Sequence          
10.6         ZJU         2416         Open the Lock
         
10.7         ZJU         2482         IP Address          
10.8         ZJU         2401         Zipper          
10.9         ZJU         2480         Simplest Task in Windows          
10.10         ZJU         2478         Total Amount          

10.11         ZJU         2256         Mincost         贪心
10.12         ZJU         2258         Number Sequence II         构造
                                         
                                         
回复

使用道具 举报

发表于 2008-4-9 18:19 | 显示全部楼层
专题1:递归运用初步

  在同济练习题前20道题中,有三题至今没有被加入我们的练习题中。其中有两题1002(全排列问题)和1017(石子归并),运用递归思想可以很方便的解决它们。

      对递归的介绍,请看这里。

     递归的应用总是和深度优先搜索联系到一起。这里先请看两篇有关的文章,一篇中文的,一篇英文的。

      看了这两篇文章,应当对深度优先的基本概念有些了解。请结合样例程序仔细体会8皇后问题的解法。这是很经典的深度优先搜索问题。

以下是一些问题的样例程序:
整数拆分
组合问题
全排列
八皇后问题



    理解这些程序若有困难,我们会详细讲解它们。理解后,请自己再编一遍。

下面是一些有关它们的练习。

关于这方面的题目很多,我们会不断添加。

Group Z1:递归和深度优先搜索初步

先做几道简单的试试。估计问题不少。
编号         来源         题号         标题         评注
Z1.1         TOJ         1002         全排列问题        
Z1.2         TOJ         1017         石子归并        

这两题涉及N的全组合
Z1.3         TOJ         1032         等式问题



         






Group 11: 搜索初步

深度优先搜索和广度优先搜索是属于常用的搜索技术。前者用到递归,后者涉及队列。

深度优先搜索对于解决某些问题并不一定是最好的,但很容易实现,有时也十分有效,它的难点在于如何剪枝优化。出现在递归初步中的题目可以算是深搜的一种。

广度优先搜索技术的结构相对固定,但节点的判重也是个难点。由于时间效率的原因,广度优先搜索运用得更为广泛。

下面是关于它们的一些练习。
编号         来源         题号         标题          
11.0         ZJU         2416         Open the Lock
        广度优先。(样例程序)
11.1         ZJU         1091         Knight Moves         最简单的广度优先搜索问题,但包括了这类方法的所有要素。
11.2         ZJU         1005         Jugs         典型的广度优先
11.3         ZJU         1649         Rescue         广度优先在迷宫问题中的应用
11.4         ZJU         1002         Fire Net         这些都是可以运用深度优先的题目。有些需要很好的剪枝。
11.5         ZJU         1003         Crashing Balloon
11.6         ZJU         1004         Anagrams by Stack



Group 13: 广度优先搜索

下面是关于广度优先搜索(BFS)的一些练习。
编号         来源         题号         标题          
13.0         ZJU         1438         Asteroids!         三维迷宫,想想如何控制方向
13.1         ZJU         2050         Flip Game         可以尝试一下位运算
13.2         ZJU         2081         Mission Impossible         可以用BFS+DFS
13.3         ZJU         1310         Robot         进阶,稍难一点
13.4         ZJU         1671         Walking Ant
13.5         ZJU         1940        

Dungeon Master
13.6         ZJU         1103         Hike on a Graph
13.7         ZJU         1358         Moving Object Recognition
13.8         ZJU         1217         Eight         难题,注意状态的表示与哈希
13.9         ZJU         1227         Free Candies
13.10         ZJU         1505         Solitaire
13.11         ZJU         1361         Holedox Moving


Group 12: 深度优先搜索

下面是关于深度优先搜索(DFS)的一些练习。
编号         来源         题号         标题          
12.0         PKU         1256         Anagram
        生成不重复排列
12.1         ZJU         1711         Sum It Up         生成不重复组合
12.2         ZJU         2412         Farm Irrigation         初步,有的需要剪枝
12.3         ZJU         1694         Shredding Company
12.4         ZJU         1457         Prime Ring Problem
12.5         ZJU         1204         Additive equations
12.6         ZJU         2192         T-shirt Gumbo         进阶,有序搜索与剪枝
12.7         ZJU         1909         Square
12.8         ZJU         1987         Vase Collection
12.9         ZJU         1937         Addition Chains
12.10         ZJU         1984         Genetic Code
12.11         ZJU         2110         Tempter of the Bone
12.12         ZJU         1179         Finding Rectangles         难题,需要很好搜索策略和剪枝技巧
12.13         ZJU         1411         Anniversary
12.14         ZJU         1008         Gnome Tetravex
12.15         ZJU         1499         Increasing Sequences




Group 14: 图--遍历(Graph Traversal)、传递闭包(Transitive Closure)


编号         来源         题号         标题          
14.0         ZJU         1221         Risk         用BFS也可以解决最短路径问题
14.1         ZJU         2165         Red and Black         基于网格的连通性分析
14.2         ZJU         1589         Professor John         传递闭包,也可以用DFS
14.3         ZJU         1085         Alien Security          
                                         

Group 15: 图--拓扑排序(Topological Sort)、关节点(Articulation Point)


编号         来源         题号         标题          
15.0         ZJU         1060         Sorting It All Out          
15.1         ZJU         1119         SPF          
15.2         ZJU         1311         Network          
                                         

Group 16: 图--最小生成树(Minimum Spanning Tree)


编号         来源         题号         标题          
16.0         ZJU         1406         Jungle Roads          
16.1         ZJU         1203         Swordfish          
16.2         ZJU         1542         Network          
16.3         ZJU         1586         QS Network         要注意节点权值
16.4         ZJU         1372         Networking         要注意重复边
16.5         ZJU         1914         Arctic Network         想想为什么可以用最小生成树?
16.6         ZJU         2158         Truck History         想想如何转化为最小生成树?
16.7         ZJU         2048         High Ways         基于连通分量的最小生成树
16.8         ZJU         1718         Building a Space Station          
16.9         PKU         1258         Agri-Net          
                                         

Group 17: 图--最短路径(Shortest Path)


编号         来源         题号         标题          
17.0         ZJU         1053         FDNY to the Rescue!          
17.1         ZJU         1609         Equivalence          
17.2         ZJU         1082         Stockbroker Grapevine          
17.3         ZJU         1655         Transport Goods         边权值有些特别
17.4         ZJU         1092         Arbitrage          
17.5         ZJU         1967         Fiber Network         想想如何利用Floyd三重循环?
17.6         ZJU         1456         Minimum Transport Cost         有些难度的最短路径题
17.7         ZJU         2008         Invitation Cards         带最小堆的Dijkstra
17.8         ZJU         1765         Which Way Do I Go?         综合题,比较复杂
17.9         ZJU         1232         Adventure of Super Mario          
  


Group 18: 图--回路问题(Euler Path & Hamilton Tour)


编号         来源         题号         标题          
18.0         ZJU         1105         FatMouse's Tour          
18.1         ZJU         2016         Play on Words         可转化为判定欧拉路的存在性
18.2         ZJU         1130         Ouroboros Snake         可以转化为欧拉路
18.3         SCU         1286         First Love         可以转化为欧拉路
                                         

Group 19: 图--二部图匹配(Bipartite Matching)


编号         来源         题号         标题          
19.0         ZJU         1140         Courses          
19.1         ZJU         1137         Girls and Boys          
19.2         ZJU         1157         A Plug for UNIX          
19.3         ZJU         1364         Machine Schedule          
19.4         ZJU         1197         Sorting Slides          
19.5         ZJU         1525         Air Raid          
19.6         ZJU         1059         What's In a Name          
19.7         ZJU         1516         Uncle Tom's Inherited Land          
19.8         ZJU         1654         Place the Robots          
19.9         ZJU         1509         Family          
                                         

Group 20: 图--网络流(Network Flow)


编号         来源         题号         标题          
20.0         PKU         1273         Drainage Ditches         典型的网络最大流问题
20.1         ZJU         1734         Power Network         可转化为网络最大流问题
                                         

Group 21: 图--差分约束(Difference Constraints)


编号         来源         题号         标题          
21.0         ZJU         1260         King          
21.1         ZJU         1420         Cashier Employment          
21.2         ZJU         1455         Schedule Problem          
21.3         ZJU         1508         Intervals          
                                         

Group 22: 图--其它


编号         来源         题号         标题          
22.0         ZJU         1015         Fishing Net         弦图判定
22.1         ZJU         1492         Maximum Clique        

求最大团,经典NP hard
22.2         ZJU         1576         Marriage is Stable         稳定婚姻,延迟认可算法
回复

使用道具 举报

 楼主| 发表于 2008-4-9 18:27 | 显示全部楼层
没关系的。。
回复

使用道具 举报

 楼主| 发表于 2008-4-15 20:01 | 显示全部楼层

有点发错地方的感觉
回复

使用道具 举报

发表于 2008-4-16 17:28 | 显示全部楼层
支持东哥!!!!
回复

使用道具 举报

发表于 2008-4-16 22:45 | 显示全部楼层
找个时间从最简单的开始做。。。看能做多少。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2024-5-1 03:04

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表