未整理算法的總結
之前一直都是認真更博的,但是為了趕時間出板子,粘貼了很多的別人的文字和代碼
十分的懊悔
但是,還是剩下了一些沒有學的東西,我是實在不想再去找題粘代碼了
所以在這裏進行一個簡單的總結,方便回憶和查閱相關的資料
貪心法:
排序不等式:
給定兩個等長的亂序數列,對應位做乘積,問怎樣才能獲得最大乘積累加和
這是一道算法導論上的題,我記得當時通過取對什麽的奇葩操作證明出來了,貪心的方法就是兩個數列都從小到大排序就好了
擬陣上的最大獨立集問題:
算法導論重點講的一個東西,有點兒類似於最小生成樹的貪心思想(Kruskal),其實最小生成樹的貪心思想就是這個
首先證明是擬陣,然後求最大獨立集就可以了,求的算法和Kruskal算法很像,在劉汝佳的黑書上有涉及,在算法導論上也有詳細的說明
汽車加油問題:
同樣是算法導論上的一道題
一輛汽車加滿油後可行駛nkm。旅途中有若幹加油站。設計一個有效算法,指出應在哪些加油站停靠加油,使沿途加油次數最少
把距離相加,判斷是否大於n,如果大於n,計數一次
過河問題(加強版):
經典的過河問題是只有一盞燈,只有一艘船什麽的,這個問題的拓展是潛水問題,是過河問題的加強版,具體解法感覺要根據數據來定,需要算一下
乘船問題:
這是劉汝佳書上的一個經典貪心題,當時偷懶沒有寫這個代碼
計算幾何:
仿射變換與矩陣:
劉汝佳在訓練指南的拓展部分描述的一部分知識點
三維計算幾何:
這部分內容考察的可能沒有二維計算幾何深入,直接看知識點就好了
掃描線:
和線段樹結合之後可以求邊長啊面積啊什麽的,好像用SET也可以巧妙求面積
字符串哈希:
字符串哈希可以解決LCP問題,它獨特的哈希方式可以用來迅速判斷兩個字符串是否相等
這裏貼一篇博文,很有意義:
https://www.cnblogs.com/Slager-Z/p/7807011.html
後綴數組:
這應該是一個比較難的知識點,俗稱SA算法,它好像可以用SAM算法替換掉,具體應用沒有總結過,沒怎麽深入研究過字符串
拓展KMP:
設字符串T,長度為n,字符串S,長度為m。在線性時間內求出T的每一個後綴所對應S的最長前綴
還好Kuangbin有板子,而且會了SAM什麽都不怕了吧(orz我不會SAM)
後綴樹:
這個東西貌似完全可以用後綴數組替換掉,而且很不實用
圖論:
EK算法:
最大流的入門級算法,有必要弄懂其原理
ZKW費用流:
不容易被卡掉的費用流,有必要弄懂其原理
數據結構:
分段哈希表:
論文中才有的東西完全沒有任何生存的價值呀
跳表:
據說可以替代任何的平衡樹,還可以O(1)求前驅和後繼
還可以方便地實現簡單的數據庫
然而並不實用
歸並樹和劃分樹:
難兄難弟,靜態區間第K大,基於歸並排序的樹和快速排序的樹?
RMQ標準算法與約束RMQ:
這個東西我們可以聯想到ST表,這個東西可以O(n)預處理是不是很吊
先說這麽多了,我該想想怎麽整理板子了
未整理算法的總結