NOI競賽大綱提高組演算法詳註

2022-09-06 14:12:22 字數 1452 閱讀 6658

基礎演算法:

貪心:

定義:在進行問題求解的時候,不從整體考慮結果,只考慮當前最優,

得到的是在某種意義上的區域性最優解。

適用條件:整體最優一定滿足區域性最優,並且不依賴後面要做出的選擇。

遞推:

定義:優當前狀態或已知的幾個狀態求出下乙個或之後的某個狀態。

適用條件:狀態之間存在明顯狀態轉移方程。

遞迴:

定義:將乙個問題劃分為多個子問題進行求解。

二分:

定義:就是把乙個複雜的問題分成兩個相似的子問題,再把子問題分成更

小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的

解的合併。

適用範圍:查詢有序序列中是否存在滿足某條件的元素,第乙個滿足某條

件的元素的位置,最後乙個滿足某條件的元素的位置。

一般也用於求最大值最

小或最小值最大問題。

二分查詢模板:

while(l

view 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分的不就是最後那兩重迴圈去掉嘛。然後腦補。想到了乙個遞推式,但是這個遞推是是二維的並且還有加數是兩個數的乘積。發現乘積可以代替。於是很自然的想到了矩陣乘法 快...