基礎演算法:
貪心:
定義:在進行問題求解的時候,不從整體考慮結果,只考慮當前最優,
得到的是在某種意義上的區域性最優解。
適用條件:整體最優一定滿足區域性最優,並且不依賴後面要做出的選擇。
遞推:
定義:優當前狀態或已知的幾個狀態求出下乙個或之後的某個狀態。
適用條件:狀態之間存在明顯狀態轉移方程。
遞迴:
定義:將乙個問題劃分為多個子問題進行求解。
二分:
定義:就是把乙個複雜的問題分成兩個相似的子問題,再把子問題分成更
小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的
解的合併。
適用範圍:查詢有序序列中是否存在滿足某條件的元素,第乙個滿足某條
件的元素的位置,最後乙個滿足某條件的元素的位置。
一般也用於求最大值最
小或最小值最大問題。
二分查詢模板:
while(lview code
倍增
數值處理演算法:
高精度加/減/乘/除法
排序演算法:
氣泡排序,選擇排序,插入排序,歸併排序,快速排序,堆排序,樹形選擇排序,
桶排序,
基數排序
圖論:
深度優先遍歷,廣度優先遍歷,最近公共祖先,最小生成樹,次小生成樹,
單源最短路,單源次短路,尤拉(回)路,二分圖,強連通分量,縮點,割點 割邊
數論:
唯一分解定理,歐幾里得演算法,擴充套件歐幾里得演算法,埃氏篩法,尤拉篩,同餘,尤拉定理
尤拉函式,費馬小定理,威爾遜定理,逆元,中國剩餘定理,組合數學,線性代數
stl模板:
sort,stack,vector,queue,deque,prioriity_queue,set,nultiset,map,pair
資料結構:
st表,並查集,線段樹,樹狀陣列,字典樹
笛卡爾樹,二叉平衡樹,基環樹,雜湊表
字串算 :
kmp
因為本人時間有限(其實是太懶了),本部落格還在陸續維護中,演算法中的超連結也在進一步完善,謝謝大家的支援。
NOIP2004提高組 蟲食算
所謂蟲食算,就是原先的算式中有一部分被蟲子啃掉了,需要我們根據剩下的數字來判定被啃掉的字母。來看乙個簡單的例子 43 9865 045 8468 6633 44445509678 其中 號代表被蟲子啃掉的數字。根據算式,我們很容易判斷 第一行的兩個數字分別是5和3,第二行的數字是5。現在,我們對問題...
荷馬史詩(NOI2015)提高組
追逐影子的人,自己就是影子 荷馬 allison 最近迷上了文學。她喜歡在乙個慵懶的午後,細細地品上一杯卡布奇諾,靜靜地閱讀她愛不釋手的 荷馬史詩 但是由 奧德賽 和 伊利亞特 組成的鴻篇巨制 荷馬史詩 實在是太長了,allison 想通過一種編碼方式使得它變得短一些。一部 荷馬史詩 中有n種不同的...
算迴圈 NOIP2016提高A組模擬10 15
樣例輸入 167 198 樣例輸出 906462341 給乙個矩陣,求矩陣所有子矩陣的面積和,取模。第一眼,20分肯定是原來暴力。第二眼,40分的不就是最後那兩重迴圈去掉嘛。然後腦補。想到了乙個遞推式,但是這個遞推是是二維的並且還有加數是兩個數的乘積。發現乘積可以代替。於是很自然的想到了矩陣乘法 快...