原创 BZOJ 3172: [Tjoi2013]單詞(fail樹)

題意: 一篇論文是由許多單詞組成。但他發現一個單詞會在論文中出現很多次,現在想知道每個單詞分別在論文中出現多少次。 思路: ac自動機的本質如果一個串是另外一個串的子串,那麼這個串是另外一個串的前綴的後綴,即另

原创 AIM Tech Round 3 (Div. 1) C. Centroids(每個點能否刪掉一條邊再添加一條邊使得這個點成爲重心)

題意: 給你n個點的樹(n<=4e5),對於每個點能否刪掉一條邊再添加一條邊使得這個點成爲重心(每一個子樹的大小都小於等於n/2) 思路: 對於每個點u,判斷有多少個子樹的大小大於n/2 每個子樹維護這個

原创 Hdu 4008 Parent and son(給你一棵樹(n

題意: 給你一棵樹(n<=1e5),有Q次查詢,每次輸入X Y,意思是以X爲根,輸出Y的兒子節點中節點標號最小和子樹中標號最小 思路: 樹形dp 先以1爲根 處理出每個子樹的最大值和次大值以及每個兒

原创 BZOJ 3631 松鼠的新家

題意: 有一棵樹,n個節點,從a1出發->a2->a3->…->an,(a爲一個排列),每經過一個節點時,該節點加一,問最終每個節點的值 思路: 類似差分,lca(u,v)+1,u-1,v-1,從上往下統計答案就可

原创 Bzoj 3672 購票(樹分治+凸殼維護)

題意:給出一棵有根樹(1爲根),邊有長度。每個點u有三個屬性(len[u],p[u],q[u]),每次u可以轉移到u的某個祖先節點v(v滿足dist(u,v)<=len[u]), 代價爲p[u]*dist(u,v)+q[u

原创 BZOJ 2115: [Wc2011] Xor

題目大意:給定一個無向圖,每條邊上有邊權,求一條1到n的路徑,使路徑上權值異或和最大 首先一條路徑的異或和可以化爲一條1到n的簡單路徑和一些簡單環的異或和 先DFS求出任意一條1到n的簡單路徑以及圖中所有線性無關的環 然

原创 Tsinsen A1486. 樹(樹分治+字典樹)

傳送門:Tsinsen A1486. 樹 題意:給你一棵樹(n<=1e5),每個點有一個權值和喜歡不喜歡之分,找出一條路徑至少包含K個喜歡的點,而且異或和最大 思路: 樹分治,同時維護字典樹 字典樹每個點維護

原创 Kattis yatp(斜率優化+樹分治)

題意: 2e5個點的無根樹,每個點有點權,每條邊有邊權,定義一條簡單路徑的花費=這條路徑兩個端點點權的乘積+邊權和, (一條簡單路徑可以包含一個點,這樣花費是該點權的平方),最後問從每個點出發的最小花費 思路:

原创 Hdu 5765 Bonds(高維前綴和)

題意: 給一個n個點的無向連通圖,求每條邊被多少個極小割邊集包括 (n<=20,m<=n*(n-1)/2) 思路: 極小邊->分成兩個聯通塊 1.先求出與每個狀態相鄰的點的狀態集 2.bfs判斷哪些點可以組成一個聯

原创 codechef Prime Distance On Tree(樹分治+fft)

題意: 給出一棵樹,邊長度都是1。每次任意取出兩個點(u,v),他們之間的長度爲素數的概率爲多大? 思路: 樹分治,對於每個根出發記錄邊的長度出現幾次,然後求卷積,用素數表查一下即可添加答案。 時間複雜度:nlog

原创 Hdu 5915 The Fastest Runner Ms. Zhang(環套樹)

題意: 有一個n個點n條邊的樹,確定S,T,使得從S出發經過所有點最終到T,記長度爲t,使得(t,S,T)的字典序最小 思路: 環套樹,破環成樹 1.起點終點在同一個子樹上,[S,T]上的邊只走一次,環上的邊只走一

原创 BZOJ 2434: [Noi2011]阿狸的打字機(fail樹+樹狀數組)

題目大意:初始字串爲空,首先給定一系列操作序列,有三種操作: 1.在結尾加一個字符 2.在結尾刪除一個字符 3.打印當前字串 然後多次詢問第x個打印的字串在第y個打印的字串中出現了幾次 思路:

原创 Codeforces Round #263 (Div. 1) B. Appleman and Tree(給一棵樹,每個點爲白色或黑色,切斷一些邊,使得每個連通塊有且僅有一個黑點,問劃分方案數。)

題意:給一棵樹,每個點爲白色或黑色,切斷一些邊,使得每個連通塊有且僅有一個黑點,問劃分方案數。(n<=1e5) 思路: dp[u][0]表示沒有被包含在黑色連通塊中 dp[u][1]表示被包含在黑色連通塊中

原创 uva 12093 Protecting Zonk(在某個節點X使用A裝置,此時與節點X相連的邊都被覆蓋)

題意: 有一個n(n<=10000)個節點的無根樹。有兩種裝置A,B,每種都有無限多個。 1.在某個節點X使用A裝置需要C1(C1<=1000)的花費,並且此時與節點X相連的邊都被覆蓋 2.在某個節點X使用B裝

原创 HDU 5069 Harry And Biological Teacher(fail樹+線段樹優化)

題意: 有n個字符串(n<=100000),總長度小於等於1e5,有m次查詢,X,Y,問第X個的後綴和第Y個的前綴的最長公共子串 思路一: 總體思路 構造fail樹,dfs序 按Y排序 X最後