原创 BNUOJ 52310 Similarity of Subtrees

題目大意 定義樹的相似:對於兩顆有根樹,如果滿足每一層的節點數相等,則稱兩棵樹相似。 一顆有n(n≤105) 個節點的樹,樹根爲1號節點,問有多少個點對滿足以它們爲根的子樹是相似的。 題解: 對樹進行哈希,即將樹按層數轉化爲

原创 HDU 5266 pog loves szh III

點擊打開鏈接 一棵樹一共有3*10^5個結點,標號爲1~N,接下來有3*10^5個詢問,給出兩個數字L,R,問標號L到R的最近公共祖先是幾號結點,默認1號結點爲樹根。 首先要注意一個問題,這裏有10^5數量級的點,如果退化成一條鏈,在進行

原创 樹狀數組RMQ

轉載自:http://www.cnblogs.com/ambition/archive/2011/04/06/bit_rmq.html 樹狀數組(Binary Index Tree)利用二進制的一些性質巧妙的劃分區間,是一種編程,時間

原创 HDU 5273 Dylans loves sequence

點擊打開鏈接 有一個長度爲1000的數組,有10^5個詢問一段區間[L,R]之內有多少個逆序對。 因爲數組長度爲1000,所以可以把結果保存下來然後O(1)查詢,求逆序對有很多方法,樹狀數組線段樹或者用分治歸併。 第一次用線段樹寫逆序對。

原创 HDU5772 String problem 最大權閉合圖

題目鏈接:點擊打開鏈接 題目大意:有一個長度爲n(n<=100)的串,字符集爲'0'-'9'。現在希望它的一個子序列分數最大,分數定義如下 Score=Value - Cost Value=0; for(int i=1;i<=length

原创 c++ bitset與位壓縮

bitset是c++的一個類模板,聲明方法爲 #inlcude <bitset> bitset<n>p; //此處的n必須爲常數 表示一串長度爲n的0或1的串 以下是它的一些成員函數的用法 b.any() b中是否存在置

原创 CF 3D Least Cost Bracket Sequence

題目大意:給一個括號序列,其中有一些位置是問號,問號可以變成左括號或右括號,每個問號變成其中一種符號都有代價。求代價最小的合法括號序列的代價以及序列。 題解:這個問題是有後效性的,因爲後面的決策不取決於前面的某一個階段的狀態,而是

原创 HDU5755 Gambler Bo

題目鏈接:點擊打開鏈接 題目大意:有一n*m(1<n,m<=30)的矩陣,每個位置取值爲{0,1,2},所有的運算都在mod3域下進行。有一種操作,使得某個位置+2,並且上下左右相鄰位置+1。輸出操作序列(操作數量<=2*m*n)使得所有

原创 HDU5803 Zhu’s Math Problem (數位DP)

題目鏈接:點擊此處查看 題目大意: 給出A、B、C、D(0≤A、B、C、D≤1018) 四個數,求滿足a+c>b+d、a+d≥b+c 的四元組(a,b,c,d) 的個數,其中0≤a≤A,0≤b≤B,0≤c≤C,0≤d≤D 。 題

原创 CF 21D Traveling Graph

CF 21D Traveling Graph 題目大意:一張無向圖有n個點(n≤15 ),m條邊(m≤2000 ),存在重邊和自環,求最小的迴路從1出發能夠通過所有的邊至少一次。 題解: 如果這張圖是一張歐拉圖的話,那麼存在一條

原创 BNUOJ 52317 As Easy As possible

題目大意 一個字符串長度爲10^5,由’e,a,s,y’四種字符組成,給定一個閉區間[l,r],問區間之內最多有多少個互不重疊的子序列easy。 例如對於eeaseyaesasyy,只有兩個easy。 經典的倍增查詢區間值問題

原创 HDU5740 Glorious Brilliance

題目鏈接:點擊打開鏈接 題目大意:給一個無向圖(1<n<=500),每個點爲黑色或者是白色,要求相鄰的節點顏色不相同。現在有一種操作,交換兩個相鄰節點的顏色。問使得圖顏色合法的最少操作數,並輸出操作序列,如果不可能讓圖合法則輸出-1。

原创 CF 568B Symmetric and Transitive 貝爾數和stirlinig數

題意,給出n個不同的數,要求二元關係集合(滿足交換律 傳遞律)但不能推出所有的元素都相等的個數。 首先有這樣的一個性質,如果將二元關係用圖來表示,那麼滿足自反傳遞和對稱的元素構成的一定是一個完全子圖。例如對於{a,b} 集合滿足

原创 LCA倍增法

LCA在線倍增法實際上是將上升的步數用二進制來表示,經過試跳一個級數來確定是否可以上升,最終找到LCA,整個路徑長度假設是n的話,這個過程就是O(logn)的。 代碼如下 1. DFS預處理出所有節點的深度和父節點 void df

原创 HDU 5727 Necklace

題目鏈接:點擊打開鏈接 題目大意是:有N個陰珠和N個陽珠,陰陽必須交替放置串成一個環,並且有些陽珠和某些陰珠相鄰時,會使陽珠失去能量。輸出最少會有多少珠子會失去能量。N<=9 思路是:先把陰珠放好,然後將陽珠插入空位中。因爲是一個環,所