原创 最大子矩陣 動態規劃DP

最大和 時間限制:1000 ms  |  內存限制:65535 KB 難度:5 描述 給定一個由整數組成二維矩陣(r*c),現在需要找出它的一個子矩陣,使得這個子矩陣內的所有元素之和最大,並把這個子矩陣稱爲最大子矩陣。 

原创 第一道 狀態壓縮dp

題目:Codeforces Round #235 D. Roman and Numbers 題目鏈接:http://codeforces.com/contest/401/problem/D 題目意思:有兩個數n和m,問由n的組成數字組

原创 並查集 + Floyd

題目:Codeforces Round #234  D. Dima and Bacteria 題目鏈接:http://codeforces.com/contest/400/problem/D 題目意思:有n個病菌分爲k個種類,n個病菌編

原创 poj 2774/poj 1743/poj 3261後綴數組應用

        最近看的後綴數組,做了幾個應用。         1、poj 2774 求兩個字符串的最長公共子串。          思路:將第二個串接到第一個串的後面,第一個串的結尾和第二個串的結尾分別用一個不會出現的字符標記,第二個

原创 2014 西安賽區邀請賽

8號做的hdu上面的題目重現。 A題:Wow! Such Doge! 題意:給你一篇文章,找出其中doge出現的次數,不區分大小寫。 思路:字符串大寫轉小寫的函數忘了……一個一個轉的。然後find下,每次從find的位置開始找,統計個數就

原创 狀態壓縮DP(二)

以前沒做過這種類型的狀態壓縮DP,剛開始看着沒想明白,後來跟着代碼看着好多了。 題目:poj1185炮兵陣地 題意:一個矩陣,有一些地方可以放大炮,有的地方不能放,大炮對上下左右的攻擊範圍都是兩格。兩個大炮不能互相攻擊到,問最多放多少大炮

原创 後綴數組

後綴數組:         先膜拜大牛: 《後綴數組——處理字符串的有力工具》    羅穗騫                    我在看後綴數組的時候後看代碼看了好久好久,還是木有理解透徹。求sa數組的過程可以分成四段看。第一步對呆處理

原创 hdu 1286(歐拉函數 phi)

題目:        找新朋友 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s

原创 Dancing Links x

參考資料: 模板代碼抄的網上大神的:博客地址 看了一篇大神的論文:《Dancing Links 在搜索中的應用》 學習的過程前面精確覆蓋的時候還好,後面重複覆蓋的時候基本懵掉了……當時也沒看到大神的博客論文裏沒模板,我對A*和IDA*一

原创 斯特靈數 hdu 3625

這是個斯特靈數的問題,跟卡塔蘭數一樣,根本沒聽過……但是感覺挺實用的…… 斯特靈數一共分兩類,這個是第一類……維基百科:點擊打開鏈接 ####################################################

原创 2-sat問題

       最近做了2-sat問題,基本沒明白2-sat是個什麼玩意,不過解題思路明確了,至於爲什麼……依舊是混沌迷茫中……        網上公認的兩篇大牛的文章,在此膜拜……                     趙爽 2-sat

原创 斐波那契 hdu 1568

題目:         給你一個整數n,求出第n個斐波那契數的前四位。         題意很明確,就是不會做,在網上百度的別人代碼知道用斐波那契數列通項公式求的。         通項公式爲:         對兩邊求log:log(a

原创 Codeforces Round #256 (Div. 2)

A. Rewards 題意: 有好多獎盃和獎章,要放在什麼玩意裏面。1、兩樣不能放在一個容器裏。2、一個容器不能放5個獎盃。3、一個容器不能放10個獎章。給n個容器問能否放完? 題解: 很水,算一下總共用的容器和給的個數比較。 B. S

原创 卡塔蘭數

這幾天做hdu的ACM steps,遇到了好幾個卡塔蘭數。 卡塔蘭數是組合數學中一個常在各種計數問題中出現的數列。以比利時的數學家歐仁·查理·卡塔蘭 (1814–1894)命名。 卡塔蘭數的一般項公式爲 卡特蘭數前幾項爲 :1, 1

原创 迴文串O(n)算法 Manacher算法

        網上說求迴文串有三種算法,lcs的n^2算法,後綴數組n*log(n),manacher的時間複雜度是O(n)的。 我以前只會n^2的算法,剛學的這個算法。 void manacher(){ int id,mx=0,le