1. 程式人生 > >未整理算法的總結

未整理算法的總結

圖論 set 快速排序 一次 數據 很多 每一個 設計 矩陣

之前一直都是認真更博的,但是為了趕時間出板子,粘貼了很多的別人的文字和代碼

十分的懊悔

但是,還是剩下了一些沒有學的東西,我是實在不想再去找題粘代碼了

所以在這裏進行一個簡單的總結,方便回憶和查閱相關的資料

貪心法:

排序不等式:

給定兩個等長的亂序數列,對應位做乘積,問怎樣才能獲得最大乘積累加和

這是一道算法導論上的題,我記得當時通過取對什麽的奇葩操作證明出來了,貪心的方法就是兩個數列都從小到大排序就好了

擬陣上的最大獨立集問題:

算法導論重點講的一個東西,有點兒類似於最小生成樹的貪心思想(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)預處理是不是很吊

先說這麽多了,我該想想怎麽整理板子了

未整理算法的總結