http://www.cnblogs.com/juruolty/p/6142064.html
————————————————18.4.18更新有時我們會遇到這樣的問題:在一棵樹上,每次詢問兩點間路徑上的和或者是最值。但我們用搜索時,時間就會到O(n),這樣根本就完不成算法。但樹上剖分就可以縮短修改的時間。樹上剖分的算法簡介我們定
#include <iostream> #include <cstdio> #include <cstring> #include <vector> #include <cmath> using namespace std ; cons
模板參數 模板參數分爲類型參數和非類型參數。類型參數代表的是一個基本類型或用戶自定義的類型,而非類型參數代表一個常量。 每個參數前面都必須有關鍵字typename或者class,形式爲<typename typeparameter>或
最初圖是用的數組線性表存的,但是TLE了,後來直接用矩陣存的然後就AC了,表面上看用矩陣存似乎花的時間多,因爲訪問了一些不存在的邊,但是用臨接矩陣存有重邊的情況就很不好,所以還是用矩陣吧! class match{ public:
chinaz.com WebTemplets Joomlatemplatemonster Template Joomlaforum.ziy.cc Joomla/f37/joomla24maycode joomla templatetem
文章目錄題目實現思路代碼 題目 【模板】支配樹 實現思路 DFS 一次得到 Dfn 和 Tid 數組; 從 Dfn 大的點開始枚舉點 uuu: 枚舉 uuu 的反向鄰接點 vvv,則 vvv 所在的並查集的最小 SDom 可以
Dijkstra 算法 (模板)【堆優化】 傳送門: Dijkstra:建議先掌握原始版本 基本思路:用一個優先隊列,priority queue來保存點到點之間的距離,優先隊列自動把隊列裏的數據排序(這裏需要手動寫一個bool型函數來定
題目大意:和spoj687類似,就是當長度相同是需要輸出一個最小的字典序的序列。 解體思路:這次需要枚舉所有的從i到d = i-L/i (d = i-L%i)的位置,然後記錄保證最大值的同時,求出來字典序最小的。 Maximum re
題目大意:給出n個字符串,讓你求出最長的子串,如果有多個按照字典序順序輸出。 解題思路:將n個字符串連起來,中間需要隔開,然後我們二分枚舉字符串的長度,求最長的長度,如果多個需要按照字典序保存起來,最後輸出答案就可以了。時間複雜度是:O(
題目大意:給定N個串,求每個串至少出現兩次的最長子串。 解題思路:每個字符串至少出現兩次且不可重疊的最長子串:二分枚舉長度後在同一分組中對每一個字符串保留一個最小的位置和一個最大的位置,最後查看是否每個串在同一組中都有至少兩個後綴,並且後
題面在這裏 題意: 給出sa[]數組,求原字符串,字符都是’a’~’z’所有小寫字母。 做法: qaq此題亂入。。。 其實是個貪心,涉及到了一點點的後綴數組。 考慮兩個後綴suf(p1)suf(p1) 和suf(p2)suf(p
要是用白書的板子 不用離散 要是藍書的板子的話,因爲m不知道上下線,需要離散 對於找一個字典序,只需要是一個串的子串,而不需要完全是一個串的後綴,但也可以用SA做 #include <cstdio> #include <cs
要注意最後的空串也要算進去,所以是<=n #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <strin
題目鏈接:[COCI 2009] PASIJANS 顯然我們每次貪心用堆維護最小的。 但是如果有相同的怎麼選擇呢?我們就要往後比較了。所以就是一個後綴排序的問題了。 但是要注意,字符串4 2是大於字符串4 2 3的。 所以我們在
題目 正解 比賽時幾乎沒有思考,直接放正解。 先講講GrayZhong的NB做法。 看着這題不難讓人想到FFT,然而這題要求概率,係數應該乘在一起,但直接卷積是加在一起的。 於是——取對數! 然後過了(不知道爲什麼精度沒有被卡)