学到的知识以及对应题目:
基础:
1. 双关键字快排 (Quick Sort)
commando_war.cpp UVa11729
final_standings Ural1100
2. factorial.cpp (白书)
3. 指针实现区间和 (白书)
数据结构:
1. 栈 (Stack)
rails.cpp UVa514
2. 邻接表 + 广搜求最短路(不加权)(BFS)
BFS.cpp
3. 优先队列 (Priority Queue)
argus.cpp LA3135 (自定义优先级)
*sequence_median.cpp Ural1306 (看似可以用pq但会超内存)
4. 基本动态数据结构 vector, map etc
easy_problem_from_lrj.cpp UVa11991(使用map)
I_can_guess_the_data_structure.cpp UVa11995 (数据结构综合)
5. 链表 (Linked List)
6378.cpp OpenJudge (删除链表元素)
Beiju.cpp UVa11988 (插入链表元素)
cipher_message.cpp Ural1654 (Avoid the extra blankspace!)
6. 堆的操作 (Heap/ Heap Sort)
heap_sort(算法导论版).cpp (手写堆实现排序)
sequence_median (heap+array)AC.cpp (STL堆找中位数)
7. 树的遍历
tree.cpp
8.并查集
union_find.cpp
9. 拓扑排序
topo_sort (dfs).cpp
topo_sort (Kahn).cpp
10. 最小生成树 Kruskal Algo
11. *哈希表
12. **链式前向星
13. *线段树
*lazy tag
14. 树状数组 Fenwick Tree
stars.cpp Ural1028 (Fenwick tree)
place.cpp COCI 2011/2012 contest 3 (Fenwick tree)
算法思想:
1. 分治法 (Divide and Conquer)
binary_search(迭代).cpp
binary_search(递归).cpp
(二分查找)
merge_sort.cpp
brainman.cpp POJ1804
(归并排序)
2. 动态规划
LCS.cpp
初等数论 (Number Theory)
1. 求证:1^2 + 2^2 +3^2 + ... + n^2
2. 欧几里德定理
除法表达式.cpp TZC1537
和*扩展欧几里德定理
3. *费马小定理
4. *欧拉定理
5. *线性代数 (Linear Algebra)
6. **快速幂
快速幂.cpp
7. *埃氏筛选法
埃氏筛法求素数.cpp
//注:程序里的remarks为所用知识点的英文 首字母小写以空格隔开
其它杂题:
1. feed_accounting.cpp OpenJudge (adhoc)
2. jolly_jumpers.cpp OpenJudge (adhoc)
3. teX.cpp OpenJudge (adhoc, 字符读入技巧 )
4. dragon_of_loowater.cpp UVa11292 (quick sort)
5. graph.cpp (逗人的题)
Still WA:
1. 逆波兰表达式.cpp Open Judge (stack)
2. 完全因子.cpp 白书 (艾氏筛法) (Day 9)
3. chess.cpp Aqua (Day 10)
4. escape.cpp Aqua (Day 10)
5. 距离.cpp Vjos (Day 15)
多校集训:
Day 1: 树套树,可持久化数据结构
Day 2: 计算几何、立体计算几何,对抗搜索
Day 3: 动态数据结构,树分治、网络流
Day 4: 后缀自动机、单纯型,AC自动机
Day 5: 树分治,网络流
Day 6: 置换群、高斯消元、函数变换、博弈论,拟阵、线性基
Day 7: 空间计数
Day 8: 概率dp、插头dp、若干奇奇怪怪的优化
Key:
*:不会实现
**:不懂