ACM第一阶段学习内容

一、知识目录

字符串处理 ................................................................. 3
1、KMP 算法 ............................................................ 3
2、扩展 KMP ............................................................ 6
3、Manacher 最长回文子串 ................................................ 7
4、AC 自动机 ........................................................... 8
5、后缀数组 ........................................................... 10
6、后缀自动机 ......................................................... 14
数学 ..................................................................... 15
1、素数 .............................................................. 15
2、素数筛选和合数分解 .................................................. 18
3、扩展欧几里得算法(求 ax+by=gcd 的解以及逆元素) ......................... 18
4、求逆元............................................................. 19
5、模线性方程组 ....................................................... 19
6、随机素数测试和大数分解(POJ 1811)..................................... 20
7、欧拉函数 ........................................................... 23
8、高斯消元(浮点数) .................................................. 24
9、FFT............................................................... 25
10、高斯消元法求方程组的解 .............................................. 28
11、 整数拆分 ......................................................... 33
12、求 A^B 的约数之和对 MOD 取模 ......................................... 35
13、莫比乌斯反演 ...................................................... 35
14、Baby-Step Giant-Step ............................................ 38
相关公式.............................................................. 38
数据结构.................................................................. 39
1、划分树............................................................. 39
2、RMQ............................................................... 41
3、树链剖分 ........................................................... 43
4、伸展树(splay tree) ............................................... 48
5、动态树............................................................. 53
6、主席树............................................................. 58
图论 ..................................................................... 68
1、最短路............................................................. 68
2、最小生成树 ......................................................... 72
3、次小生成树 ......................................................... 73
4、有向图的强连通分量 .................................................. 74
5、图的割点、桥和双连通分支的基本概念..................................... 77
6、割点与桥 ........................................................... 78
7、边双连通分支 ....................................................... 81
8、点双连通分支 ....................................................... 83
9、最小树形图 ......................................................... 86
10、二分图匹配 ........................................................ 88
11、生成树计数 ........................................................ 91
11、二分图多重匹配 ..................................................... 94
12、KM 算法(二分图最大权匹配).......................................... 95
13、最大流............................................................ 96
14、最小费用最大流 ....................................................102
15、2-SAT...........................................................103
16、曼哈顿最小生成树 ..................................................107
17、一般图匹配带花树 ..................................................110
18、LCA.............................................................113
计算几何.................................................................119
1、基本函数 ..........................................................119
2、凸包 .............................................................123
3、平面最近点对(HDU 1007) ...........................................124
4、旋转卡壳 ..........................................................126

5、半平面交 ..........................................................131 
6、三点求圆心坐标(三角形外心) .........................................135 
动态规划.................................................................136 
1、最长上升子序列 O(nlogn) ............................................136 
其他 ....................................................................136 
1、高精度............................................................136 
2、完全高精度 ........................................................138 
3、strtok 和 sscanf 结合输入 ..........................................143 
4、解决爆栈,手动加栈 .................................................143 
5、STL..............................................................144 
6、输入输出外挂 ......................................................145 
7、莫队算法 ..........................................................146

二、参考资料
Summer 2017 Code Training 1

模板:上海大学ACM模板-第3-24页

【字符串-参考资料】
1、 从头到尾彻底理解KMP
http://www.cnblogs.com/zhangtianq/p/5839909.html
2、最长回文子串
http://blog.csdn.net/kangroger/article/details/37742639
3、AC自动机最详细的讲解,让你一次学会AC自动机
http://blog.csdn.net/creatorx/article/details/71100840
4、后缀数组
http://www.cnblogs.com/shanchuan04/p/5324009.html
http://blog.csdn.net/fp_hzq/article/details/8990932
5、后缀自动机
https://www.zhihu.com/question/34039162

文件:2017CT1资料_SAM后缀自动机-陈立杰讲稿、2017CT1-柔性字符串匹配、2017CT1-algorithms on strings字符串算法大全。

【数学-参考资料】
1、素数有关算法
http://blog.csdn.net/snow_me/article/details/52588819
2、扩展欧几里德算法
http://blog.csdn.net/zhjchengfeng5/article/details/7786595
3、逆元
http://blog.csdn.net/acdreamers/article/details/8220787
4、Miller_rabin算法
http://blog.csdn.net/maxichu/article/details/45458569
5、欧拉函数
http://blog.csdn.net/sentimental_dog/article/details/52002608
6、模线性方程组
http://blog.csdn.net/qq_21120027/article/details/51340218

Summer 2017 Code Training 2

模板:上海大学ACM模板-第25-42页

【数学-参考资料(续)】
1、高斯消元法
http://blog.csdn.net/duanxian0621/article/details/7408887

2、FFT(快速傅氏变换)
http://www.gatevin.moe/acm/fft%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/

3、莫比乌斯反演
http://blog.csdn.net/acdreamers/article/details/8542292

4、离散对数(Baby Step Giant Step)
http://blog.csdn.net/acdreamers/article/details/8579511

【数据结构-参考资料】
1、划分树
http://blog.csdn.net/shiqi_614/article/details/8041390

2、主席树
http://blog.csdn.net/sprintfwater/article/details/9162041

3、区间最值查询(RMQ)
http://blog.csdn.net/liang5630/article/details/7917702
http://blog.csdn.net/metalseed/article/details/7953260

Summer 2017 Code Training 3
模板:上海大学ACM模板-第43-74页

【数据结构-参考资料(续)】
1、树链剖分原理
http://blog.csdn.net/acdreamers/article/details/10591443

2、树状数组
http://blog.csdn.net/ljd4305/article/details/10101535

3、线段树
http://www.cnblogs.com/TenosDoIt/p/3453089.html

4、Splay Tree(伸展树)
http://blog.csdn.net/niuox/article/details/8018280

5、动态树
http://blog.csdn.net/d891320478/article/details/9181385

6、主席树
http://blog.csdn.net/sprintfwater/article/details/9162041

【图论-参考资料】
1、最短路:Dijkstra算法
http://www.cnblogs.com/skywang12345/p/3711512.html

2、最短路:Bellman-Ford算法
http://blog.csdn.net/niushuai666/article/details/6791765

3、最短路:SPFA算法
http://www.layz.net/LAOJ/suanfa/s9-4.html

4、最小生成树:Kruskal算法
http://blog.csdn.net/luomingjun12315/article/details/47700237

5、最小生成树:Prim算法
http://blog.csdn.net/yeruby/article/details/38615045

6、次小生成树
http://yzmduncan.iteye.com/blog/1018358

Summer 2017 Code Training 4
模板:上海大学ACM模板-第74-96页

【图论-参考资料(续)】
1、有向图的强连通分量:Tarjan算法
http://www.cnblogs.com/uncle-lu/p/5876729.html

2、有向图的强连通分量:Kosaraju算法
http://www.cnblogs.com/nullzx/p/6437926.html

3、最小树形图
http://www.cnblogs.com/Ash-ly/p/5536796.html

4、二分图
http://dsqiu.iteye.com/blog/1689505
http://www.renfei.org/blog/bipartite-matching.html

5、二分图最大匹配:匈牙利算法
http://blog.csdn.net/dark_scope/article/details/8880547
http://www.cnblogs.com/pony1993/archive/2012/07/25/2607738.html

6、二分图最大匹配:Hopcroft-Karp算法
http://blog.csdn.net/wall_f/article/details/8248373

7、生成树计数:Matrix-Tree定理
http://blog.csdn.net/longshuai0821/article/details/7764267

8、二分图多重匹配问题
http://blog.csdn.net/u014427196/article/details/48319639

9、二分图最大权匹配:Kuhn-Munkres算法
http://www.cnblogs.com/kuangbin/archive/2012/08/19/2646535.html

Summer 2017 Code Training 5
模板:上海大学ACM模板-第97-121页

【图论-参考资料(续)】
1、最大流问题
http://blog.csdn.net/yiqingnian28/article/details/23388633
http://www.cnblogs.com/kuangbin/archive/2011/07/26/2117636.html

2、最小费用最大流
http://blog.csdn.net/stillxjy/article/details/52047189

3、2-SAT
http://blog.csdn.net/jarjingx/article/details/8521690

4、曼哈顿距离最小生成树
http://blog.csdn.net/acm_cxlove/article/details/8890003

5、莫队算法
http://blog.csdn.net/hzj1054689699/article/details/51866615

6、一般图匹配问题:带花树
http://blog.csdn.net/u014261987/article/details/41350003
http://blog.csdn.net/jackyguo1992/article/details/11271497

7、LCA(最近公共祖先)
http://blog.csdn.net/liangzhaoyang1/article/details/52549822
http://www.cnblogs.com/wuminye/p/3527176.html
http://blog.csdn.net/Janis_z/article/details/52937631?locationNum=6&fps=1

【计算几何-参考资料】
8、计算几何
http://www.cnblogs.com/kuangbin/category/410309.html
文件:HIT-ACM计算几何模板

Summer 2017 Code Training 6
模板:上海大学ACM模板-第122-152页

【计算几何-参考资料】
1、计算几何
http://www.cnblogs.com/kuangbin/category/410309.html
HIT-ACM计算几何模板

【其他-参考资料】
2、动态规划
http://blog.csdn.net/baidu_28312631/article/details/47418773
http://blog.csdn.net/scythe666/article/details/50921628

3、莫队算法
http://blog.csdn.net/hnshhslsh/article/details/50582926

三、题解链接

Summer 2017 Code Training 1 

A - Cow Patterns
来源:POJ – 3167
知识点:扩展KMP等
http://www.cnblogs.com/zjh10/articles/2105716.html
http://blog.csdn.net/tmeteorj/article/details/8693366
http://www.cppblog.com/zxb/archive/2010/10/06/128782.aspx?opt=admin

B - Best Sequence
来源:POJ – 1699
知识点:扩展KMP+DFS等
http://blog.csdn.net/zzzz40/article/details/39186109

C – Palindrome
来源:POJ – 3974
知识点:Manacher算法等
http://blog.csdn.net/u010885899/article/details/45366633
http://blog.csdn.net/geniusluzh/article/details/8639759

D - Keywords Search
来源:HDU – 2222
知识点:AC自动机等
http://blog.csdn.net/hnust_xiehonghao/article/details/9130539

E - Longest Common Substring
来源:HDU – 1403
知识点:后缀数组DA算法(倍增算法)等
http://blog.csdn.net/xinag578/article/details/50164599

F - Power Strings
来源:POJ – 2406
知识点:后缀数组DC3算法等
http://blog.csdn.net/libin56842/article/details/46310425

G – String
来源:CodeForces - 123D
知识点:后缀自动机(SAM)等
http://blog.csdn.net/dyx404514/article/details/8713542
http://www.hankcs.com/program/algorithm/codeforces-123d-string.html

H - Prime Distance
来源:POJ – 2689
知识点:大区间素数筛选等
http://www.cnblogs.com/kuangbin/archive/2013/05/20/3089840.html

I - The Factor
来源:HDU – 5428
知识点:素数筛选合数分解等
http://www.bubuko.com/infodetail-1079772.html
http://www.cnblogs.com/Apro/p/4784808.html

J - A/B
来源:HDU - 1576
知识点:扩展欧几里得算法等
http://blog.csdn.net/ljd4305/article/details/26057385
http://blog.csdn.net/lyc1635566ty/article/details/50611246

K - X问题
来源:HDU - 1573
知识点:解一元线性同余方程组、中国剩余定理等
http://www.cnblogs.com/zhangmingcheng/p/4238407.html
http://blog.csdn.net/a601025382s/article/details/10296577

L - Prime Test
来源:POJ – 1811
知识点:大素数判断和素因子分解等
http://www.cnblogs.com/kuangbin/archive/2012/08/19/2646404.html

M - Farey Sequence
来源:POJ – 2478
知识点:欧拉函数等
http://blog.csdn.net/aaaaacmer/article/details/47272037

Summer 2017 Code Training 2 

A - Kind of a Blur
来源:HDU - 3359
知识点:高斯消元法等
http://blog.csdn.net/qwb492859377/article/details/47013321

B - A * B Problem Plus
来源:HDU – 1402
知识点:FFT、大整数乘法等
http://blog.csdn.net/sdj222555/article/details/9786527

C - 3-idiots
来源:HDU – 4609
知识点:FFT计数等
http://blog.csdn.net/qq_33184171/article/details/54427994

D - Painter‘s Problem
来源:POJ – 1681
知识点:高斯消元法(一类开关问题,对2取模的01方程组)等
http://www.cnblogs.com/kuangbin/archive/2012/08/31/2665913.html

E - Widget Factory
来源:POJ – 2947
知识点:高斯消元法(解同余方程组)等
http://www.cnblogs.com/gj-Acit/p/3903085.html

F - Partition
来源:HDU – 4651
知识点:整数拆分等
http://www.cnblogs.com/zhsl/archive/2013/08/07/3242268.html

G - Integer Partition
来源:HDU – 4658
知识点:整数划分、生成函数等
http://blog.csdn.net/a601025382s/article/details/10299367

H - Sumdiv
来源:POJ – 1845
知识点:求A^B的约数之和对MOD取模等
http://www.cnblogs.com/kuangbin/archive/2012/08/10/2631225.html

I - GCD
来源:HDU – 1695
知识点:莫比乌斯反演等
http://blog.csdn.net/lixuepeng_001/article/details/50577932

J - Discrete Logging
来源:POJ – 2417
知识点:离散对数(Baby Step Giant Step)等
http://www.cnblogs.com/kuangbin/archive/2013/08/24/3278852.html

K - K-th Number
来源:POJ – 2104
知识点:经典划分树、主席树等
http://blog.csdn.net/pure_lady/article/details/46806833
http://www.cnblogs.com/oyking/p/3230296.html

L - Sliding Window
来源:POJ – 2823
知识点:单调队列、线段树、一维RMQ等
http://blog.csdn.net/u013351484/article/details/45112271

M – Cornfields
来源:POJ – 2019
知识点:二维RMQ等
http://www.cnblogs.com/kuangbin/p/3227420.html

Summer 2017 Code Training 3

A - Aragorn‘s Story
来源: HDU – 3966
知识点:树链剖分+树状数组等
http://www.cnblogs.com/kuangbin/archive/2013/08/14/3258736.html

B - Query on a tree
来源: SPOJ – QTREE
知识点:树链剖分+线段树等
http://blog.csdn.net/niuox/article/details/8145842

C - SuperMemo
来源:POJ – 3580
知识点:Splay Tree(伸展树)等
http://blog.csdn.net/jasonzhu8/article/details/5747811

D - Query on The Trees
来源:HDU – 4010
知识点:动态树等
http://www.cnblogs.com/kuangbin/archive/2013/09/04/3300251.html

E - D-query
来源:SPOJ - DQUERY
知识点:主席树-区间不同数的个数 等
http://blog.csdn.net/aozil_yang/article/details/65448883

F - K-th Number
来源:POJ – 2104
知识点:主席树-静态区间第k大 等
http://www.cnblogs.com/kuangbin/archive/2013/09/05/3302731.html

G - Count on a tree
来源:SPOJ – COT
知识点:LCA+主席树等
http://blog.csdn.net/acm_cxlove/article/details/8564167
http://www.cnblogs.com/arbitrary/archive/2013/10/09/3360104.html

H - Dynamic Rankings
来源: ZOJ - 2112
知识点:树状数组+主席树-动态第k大等
http://www.cnblogs.com/kuangbin/p/3308118.html

I - MPI Maelstrom
来源:POJ – 1502
知识点:Dijkstra算法等
http://blog.csdn.net/u013446688/article/details/42708487

J - Invitation Cards
来源:POJ – 1511
知识点:优先队列优化的Dijkstra算法等
http://www.cnblogs.com/kuangbin/p/3140958.html

K - Currency Exchange
来源:POJ – 1860
知识点:Bellman-Ford算法等
http://www.cnblogs.com/kuangbin/archive/2012/08/17/2644807.html

L - Wormholes
来源:POJ - 3259
知识点:SPFA等
http://blog.csdn.net/murmured/article/details/18669909

M - Highways
来源:POJ – 2485
知识点:最小生成树等
http://blog.csdn.net/mikasa3/article/details/51559191
http://blog.csdn.net/fanesemyk/article/details/51137466?locationNum=1&fps=1

N - Design Tutorial: Inverse the Problem
来源:CodeForces - 472D
知识点:最小生成树等
http://blog.csdn.net/u010660276/article/details/39901287

O - Qin Shi Huang‘s National Road System
来源:HDU - 4081
知识点:次小生成树等
http://blog.csdn.net/shuangde800/article/details/7982106

Summer 2017 Code Training 4

A - Popular Cows
来源:POJ – 2186
知识点:Tarjan算法等
http://www.dontcry-tat.com/2017/04/26/poj-2186-popular-cows/

B - 迷宫城堡
来源:HDU – 1269
知识点:Kosaraju算法等
http://blog.csdn.net/qq7366020/article/details/12943345

C - Critical Links
来源:UVA – 796
知识点:无向图求桥等
http://www.cnblogs.com/chenchengxun/p/4718717.html

D - Electricity
来源:POJ – 2117
知识点:无向图求割点
http://blog.csdn.net/liwen_7/article/details/7919220

E - Redundant Paths
来源:POJ – 3177
知识点:无向图的双连通问题等
http://mojijs.com/2014/11/165169/index.html

F - Knights of the Round Table
来源:POJ – 2942
知识点:点的双连通分量等
http://www.cnblogs.com/wangfang20/p/3201502.html

G - Command Network
来源:POJ – 3164
知识点:最小树形图等
http://blog.csdn.net/shuangde800/article/details/8039359

H - The Perfect Stall
来源:POJ – 1274
知识点:二分图最大匹配:匈牙利算法
http://blog.csdn.net/u013487051/article/details/37656979

I - Asteroids
来源:POJ – 3041
知识点:二分图最大匹配:匈牙利算法
http://blog.csdn.net/yeruby/article/details/39315713

J - COURSES
来源:POJ – 1469
知识点:二分图最大匹配:Hopcroft-Karp算法
http://blog.csdn.net/u011466175/article/details/23709885

K - Lightning
来源:HDU – 4305
知识点:生成树计数:Matrix-Tree定理
http://blog.csdn.net/julyana_lin/article/details/8067024

L - Highways
来源:SPOJ – HIGH
知识点:生成树计数
http://blog.csdn.net/gatevin/article/details/48051879

M - Alice‘s Chance
来源:POJ – 1698
知识点:二分图多重匹配
http://blog.csdn.net/l123012013048/article/details/47295503

N - 奔小康赚大钱
来源:HDU – 2255
知识点:二分图最大权匹配、KM算法等
http://blog.csdn.net/sr_19930829/article/details/40650359

时间: 2024-11-08 19:19:59

ACM第一阶段学习内容的相关文章

PHP四个阶段目标以及第一阶段学习内容

PHP课程体系主要分为四个阶段,第一阶段讲的是网页HTML和数据库MySQL,第一阶段要学会网页制作的基础知识,熟用各种基本标签,对数据库进行操作,各项考核都能够达标,拿出出众的项目展示. 在第二个阶段,主要学习PHP实用技术开发,学习PHP基础,PHP面向对象,PHP数据访问,然后是阶段项目.阶段项目会认真做到最好,各项考核都是优秀. 在第三阶段,主要学习PHPCMS,Smarty模板,ThinkPHP框架,和一些补充知识,和小组完成自己的项目,并积极接一些新的项目. 在第四阶段,主要学习SV

2.Freshman阶段学习内容的确定

我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我都想学,什么都想学,要学的东西太多了,但是不知道从什么地方学期,注意力全都分散了,而且已经花了好多精力找资料了...不由得使我想起大一的时候各种下资料分类整理归档,然后基本上都没看过.前面犯过的错历历在目,再犯的时候毫无察觉,死性不改,人类为何总是重复相同的错误T_T.所以花了一会儿静下心想了想,觉

Python第一阶段学习总结 如何学好Python

学习Python至今已经一个半月的时间,已经完成了第一阶段的学习,就该阶段的学习做如下总结.首先看一下存在哪些问题. 首先,课上内容有时不能做到及时消化需要下课及时复习练习. 第一阶段主要内容为Python基础知识和MySQL的基本操作,对于班里一些计算机专业或者应届生来说,应该是没有问题的,但对于一个真正的零基础且大龄学员的我来说,还是有些难度的.前半部分没什么问题,同样轻松,但到了面向对象.类.封装函数就有点乱,主要是有时不能在课上及时的消化,很可能老师在结束一个知识点转到另一个知识点的时候

IT兄弟连 HTML5教程 HTML5的学习线路图 第一阶段学习网页制作

学习HTML5技术可并不是简单学会几个新增的标签而已,HTML5现在可以说是前端所有技术的代名词.需要学习的语言和工具不仅多,对于刚接触他们的新人会感觉很乱.另外,前端开发也会细分很多个开发岗位,不同的岗位所涉及的技术也会有差别,所以先要确定自己的发展定位,收集要学习的内容,整理好学习的顺序.很多时候,成功除了勇气.坚持不懈外,更需要方向.也许有了一个好的方向,成功来得比想象的更快.如果在错误的路上奔跑,再怎么努力也是白搭.学习Web前端也是如此,首先应该选择一个正确的学习路线.HTML5学习线

20172304 2017-2018-2《程序结构与程序设计》第一周学习内容总结

20172304 2017-2018-2<程序设计与程序结构>第一周学习内容总结 教材学习内容 本书的第一章讲述的主要是一些基础内容,大多是一些理论性内容,所以我只是进行了一些广泛的阅读,在进行作业的时候,发现有一些内容涉及到了第二章,所以向同学进行了请教. 教材学习过程中的问题和解决过程 问题一:在进行 原文地址:https://www.cnblogs.com/15248252144dzx/p/8542774.html

python第一周学习内容

编译性语言:在将源代码编译完毕生成一个可执行文件后才能运行 解释性语言:在代码的运行期间进行编译 动态类型语言:在运行期间才去做数据检查的语言,也就是说在使用动态类型语言时不用指定数据类 型 静态类型语言:在编译期间去做数据检查 强类型定义语言:强制数据类型定义的语言 弱类型定义语言:数据类型可以忽略的语言,一个变量可以有不同的数据类型 python解释器:当我们编写python代码时,我们的道德是一个包含python的码的以.py为扩展名的文本文件,要运行代码,就需要python解释器去执行.

jQuery 第一阶段 学习使用总结

jQuery 是一个 JavaScript 库,位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数.在平常的使用过程中,会常常与JavaScript,配合css使用,能够令网页产生很好的动态效果实现. 通常的,可以通过下面的标记把 jQuery 添加到网页中: <head> <script type="text/javascript" src="jquery.js"></script> </head

第一周学习内容

通过这段时间的学习,认识了很多"新"名词,下面具体对每个知识点根据自己掌握的程度进行分析: 语句:条件语句.循环语句.跳转语句.异常处理语句等,对于if...else.switch...case.for.While.return这些语句以前用的比较多,还是比较熟练的,而像do...while.foreach这些都是现在才用的多,不是那么熟练,对于break和continue的概念,有时候感觉可明白,有时候又有点迷糊,用的少.对于异常处理语句,以前编写代码的过程中根本没有用过,现在写代码

javaweb第一天学习内容

day01 1.html的简介 * 什么是html? - HyperTest Markup Language:超文本标记语言,网页语言 ** 超文本:超出文本的范畴u,使用html可以轻松实现这样操作. ** 标记:html所有的操作都是通过标记实现的,标记就是标签,<标签名称> ** 网页语言 * 第一个html程序. - 创建java文件  .java ** 先编译,然后再运行(jvm) - html的后缀是 .html .htm ** 直接通过浏览器就可以运行 - 代码 ** 这是我的&