• ACM-必备知识点


    时间复杂度渐近时间复杂度的严格定义NP问题时间复杂度的分析方法,主定理)
    排序算法(平方排序算法的应用,Shell排序快速排序归并排序时间复杂度下界,三种线性时间排  ,外部排序)
    数论整除集合论关系素数进位制辗转相除扩展的辗转相除同余运算解线性同余方程中国剩余定理
    指针链表,搜索判重,邻接表开散列二叉树的表示,多叉树的表示)
    按位运算andorxorshlshr一些应用
    图论(图论模型的建立,平面图,欧拉公式与五色定理求强连通分量,求割点和桥,欧拉回路AOV问题AOE问题最小生成树的三种算法最短路的三种算法,标号法,差分约束系统,验证二分图Konig定理匈牙利算法,KM算法,稳定婚姻系统最大流算法最小割最大流定理,最小费用最大流算法)
    计算几何平面解几及其应用向量点积及其应用叉积及其应用,半平面相交,求点集的凸包,最近点对问题,凸多边形的交,离散化与扫描
    数据结构广度优先搜索验证括号匹配表达式计算递归的编译Hash表,分段Hash,并查集Tarjan算法二叉堆,左偏树,二斜堆,二项堆,二叉查找树,红黑树,AVL平衡树,Treap,Splay,静态二叉查找树,2-d树,线段树,二维线段树,矩形树,Trie树,块状链表)
    组合数学排列与组合鸽笼原理容斥原理递推Fibonacci数列Catalan数列Stirling数差分序列生成函数置换Polya原理
    概率论简单概率条件概率Bayes定理期望值
    矩阵(矩阵的概念和运算,二分求解线性递推方程,多米诺骨牌棋盘覆盖方案数,高斯消元)
    字符串处理KMP后缀树,有限状态自动机,Huffman编码简单密码学
    数论单调队列,凸完全单调性,树型动规,多叉转二叉,状态压缩类动规,四边形不等式)
    博奕论Nim取子游戏,博弈树,Shannon开关游戏
    搜索(A*,ID,IDA*,随机调整,遗传算法)
    微积分初步极限思想导数积分定积分立体解析几何
    书籍推荐:

    入门三本:
    《数据结构与算法》(傅清祥,王晓东编著,我所见过的最好的算法教材)
    程序设计导引及在线实践 作者: 李文新
    ACM程序设计培训教程 吴昊

    基础提高:
    算法艺术与信息学竞赛 第二版 刘汝佳
    算法设计与分析 王晓东
    算法设计与试验题解 王晓东
    科曼:《算法导论》
    组合数学 第三版 冯舜玺 译
    计算几何-算法设计与分析 周培德
    国际信息学奥林匹克竞赛指导— — 实用算法的分析与程序设计  吴文虎 王建德

    网络算法与复杂性理论 谢政 李建平
    《Concrete Mathematics --- A Foundation For Computer Science》 Ronald L. Graham , Donald E. Knuth , Oren Patashnik《具体数学》(能买到中文版最好)
    《计算机程序设计艺术》三卷 Knuth
    组合数学的算法与程序设计
    《程序设计中的组合数学》 吴文虎
    图论的算法与程序设计
    图、网络与算法

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

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


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

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

    做题前请了解一些规范:

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

     int main()

    {

    return 0;

    }

     

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

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

        //ZJU1001; 等

     

     

    Group 0:热身

    再次提醒:做对后别忘提交到训练系统.
    编号         来源         题号         标题         评注
            三道都是A+
    B,而且有样例程序。请自己做一遍,不要拷。
    0.1         ZJU         1001         A+
    Problem
    0.2         PKU         1000         A+
    Problem
    0.3         TOJ         1000
             熟悉一下Online Judge的环境

    Group 1:起步

     

    Group 2:英文题(1

         以下是ZJU上的题目,ZJU的题都是英文的,有些题难度可能不比上面一组高。但对新队员来说,理解题意本身可能是个难点。 
    编号         来源         题号         标题         评注
    2.1         ZJU         1048
             Financial Management
            只比A+
    B难一点
    2.2         ZJU         1045
             HangOver         这一道和下面两道都是简单的计算
    2.3         ZJU         1049
             Think need boat          
    2.4         ZJU         1813         Biker'Trip Odometer          

    2.5         ZJU         1057         Undercut          
    2.6         ZJU         1113
             Calculate         没有输入,但要注意格式
    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 1
              
    3.2         ZJU         1712
             Skew Binary          
    3.3         ZJU         1016
             Parencodings          
    3.4         ZJU         1350
             The Drunk Jailer          
    3.5         ZJU         1051
             New Growth Industry         这三题可能比较繁琐,做的时候要仔细
    3.6         ZJU         1178
             Booklet PrintingBook
    3.7         ZJU         1078
             Palindrom Numbers

    Group 4:TOJ前20题中剩余题 

     

     

    Group 5:基础题继续练习

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

    有些题目需要一些数学推算,但都不会超出你们的知识范围。
    编号         来源         题号         标题         评注
    5.1         ZJU         1763
             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'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
             Flea on Chessboard
    7.12         ZJU         1628
            Diamond          
    7.13         ZJU         1630
            Die          
    7.14         ZJU         1517        Grandpa'Rubik Cube

    7.15         ZJU         1161         Gone Fishing         (新加)贪心经典,可以后再做
               

                                 

     

    Group 8字符串处理
    编号         来源         题号         标题         评注
    8.1         ZJU         1099
            HTML          
    8.2         ZJU         1318
            Table         样例数据
    8.3         ZJU         1116         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'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         构造
               

                                 

    专题1:递归运用初步
          对递归的介绍,请看这里。

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

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

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

     

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

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

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

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

     


    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 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 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 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 Movi

    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 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 Go?
             综合题,比较复杂
    17.9         ZJU         1232         Adventure of Super Mario         
    Group 18图--回路问题(Euler Path & Hamilton Tour)
    编号         来源         题号         标题          
    18.0         ZJU         1105         FatMouse'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         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'In Name          

    19.7         ZJU         1516         Uncle Tom'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 Constraint
    编号         来源         题号         标题          
    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     稳定婚姻,延迟认可算法


  • 相关阅读:
    226. Invert Binary Tree
    404. Sum of Left Leaves
    112. Path Sum (判断路径和是否等于某值)
    5 用两个栈实现队列
    111. Minimum Depth of Binary Tree
    110. Balanced Binary Tree
    4 重建二叉树
    108. Convert Sorted Array to Binary Search Tree
    235. Lowest Common Ancestor of a Binary Search Tree(LCA最低公共祖先)
    3 从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/ainima/p/6331208.html
Copyright © 2020-2023  润新知