學到的知識以及對應題目:算法
基礎:數組
1. 雙關鍵字快排 (Quick Sort) 網絡
commando_war.cpp UVa11729數據結構
final_standings Ural1100ide
2. factorial.cpp (白書)函數
3. 指針實現區間和 (白書)優化
數據結構:ui
1. 棧 (Stack)spa
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:
*:不會實現
**:不懂