一个算法模板应该涵盖下面几点:
- 对该算法的基本介绍(核心思想、复杂度等)
- 参考链接或书籍章节(讲的比较好的资料)
- 模板代码(可以包含一些注释)
- 使用模板的注意事项
- 模板补充内容(常见题型中的额外代码、建模技巧等)
- 相关题目(模板题、经典题、建模转换题等)
注:为方便在比赛中使用,一部分函数写成了 lambda 的形式。
见 template 中的 generator.go
以及各个文件夹下的 generator.go
注:由于白书上选了很多区域赛的题,一部分题目可以在 GYM 上找到,这样可以就可以用 Go 编程提交了。(洛谷上也可能找到)
算法竞赛 (ICPC, OI, etc) 论文,课件,文档,笔记等
All the good tutorials found for Competitive Programming
Pepcy's Templates for OI and ICPC
https://blog.csdn.net/skywalkert/article/details/48924861
- k-d树、替罪羊树
- 左偏树、Splay伸展树、序列维护
- 可持久化Treap
- 动态树、换父亲节点(BZOJ 3153)
- FFT快速傅里叶变换与多项式乘法、除法、求逆、多点求值、牛迭
- NTT快速数论变换
- FWT快速沃尔什变换(TopCoder SRM518 Nim)
- 最大团问题
- 最小树形图(CodeForces 240E)
- 支配树Dominator Tree、虚树
- 带花树一般图匹配、权匹配(UOJ 79、UOJ 81)
- 网络流消圈算法
- 单纯形解线性规划
- 平面图、对偶图、梯形剖分、点定位(UVALive 2327、Aizu 2448、SGU 209、CodeForces 44F、UVALive 5837)
- 仙人掌图直径、最短路、计数问题(A000314)
- 三角剖分、Voronoi图
- 平面图判定(CodeVS 2965)
- 回文自动机、后缀自动机、后缀平衡树、Boder Tree(BZOJ 3936)
- 圆的反演(BZOJ 2961、HDU 4773)
- 整体二分
- 子集反演、计数问题
- Matrix-Tree定理、无向图(有向图)生成树计数问题
- dp套dp
- 随机算法、模拟退火
- 折纸问题
- 正确的数位dp(CodeForces 288E、331C3)
- k短路
- 斯坦纳树(WC游览计划、APIO机器人)
- 另类博弈(UVALive 6840、SRM 423 Div1 Hard)
好像已经有很多了,先补起来吧。
有趣的题目
- CodeForces 338D
- BZOJ 2001 (cdq分治做法)
- Aizu 1164 (Hardest)
- UVA 12434 (Hardest)
近期总结
- 组合数求模
- 卷积与多项式
- 积性函数求和
- 图论大杂烩
https://blog.csdn.net/skywalkert/article/details/48878925