原创 例題9-27 方塊消除 UVa10559

1.題目描述:點擊打開鏈接 2.解題思路:本題屬於區間dp型問題,不過在設置狀態的時候不是特別容易。根據題意,方塊的消除必須是一串相同顏色的纔可以進行。因此,按照以往的經驗,我們設dp(i,j)表示i...j之間的最大得分。那麼,有2種方

原创 例題9-25 輕鬆爬山 UVa12170

1.題目描述:點擊打開鏈接 2.解題思路:本題屬於區間dp類問題,根據題意,我們需要修改2到n-1之間的一些h的值,使得相鄰2個h值差的絕對值不超過d。因爲可以修改的數是一個實數,無法一一枚舉,因此需要仔細對問題進行分析。 首先,考慮只有

原创 LA 4394 String painter

1.題目描述:點擊打開鏈接 2.解題思路:本題是區間dp類的問題,根據題意描述,要求我們把給定的A串變成B串,每次操作時候可以選一段區間,然後將這個區間都刷成同一個字符,詢問最少需要多少步。因爲A串和B串部分位置可能相同,爲了便於分析,讓

原创 UVa11987 Almost Union-Find

1.題目描述:點擊打開鏈接 2.解題思路:本題利用並查集解決。唯一一個和普通的並查集不太一樣的操作就是題目中的操作2,要求將p從它所在的集合中移出,移到q所在的集合。這就提示我們不要讓數字本身作爲該並查集的樹根。因此,我們可以統一把樹根都

原创 UVa5846 Neon Sign

1.題目描述:點擊打開鏈接 2.解題思路:統計每個點的黑色邊ai,那麼結果就是C(n,3)-0.5*sum{A{i]*(n-1-A{i])}。 3.代碼: #include<iostream> #include<algorithm> #i

原创 hihoCoder 1242 MX Loves Game

1.題目描述:點擊打開鏈接 2.解題思路:本題要求用最少的次數將A矩陣變成B矩陣,每次操作可以選擇2行或2列進行交換。如果無解,輸出-1。注意到題目中提到的性質:每一行或每一列都是1~n的一個排列。因此無論怎麼交換,最終仍然是每行每列都是

原创 POJ 2406 Power Strings

1.題目描述:點擊打開鏈接 2.解題思路:本題利用KMP算法中f函數的性質解決。根據題意可以知道,len-f[len]就是週期串的錯位部分,如果這len個字符構成了一個週期串,那麼len-f[len]就是這個週期串的循環節,因此應該有le

原创 LA 5092 Permutation Counting

1.題目描述:點擊打開鏈接 2.解題思路:本題就是Eulerian Number,《具體數學》中有講解。也可參考維基百科中的鏈接:點擊打開鏈接 設f(n,k)表示1~n的排列中有k個歐拉數的方案數。那麼有如下遞推式: f(n,k)=(1+

原创 LA4108 SKYLINE

1.題目描述:點擊打開鏈接 2.解題思路:本題用線段樹解決。根據題意,我們需要構造一棵線段樹,維護區間[L,R)中的長度和這段區間的高度值。不過在pushup的時候,只有左孩子和右孩子都相同時候,才更新當前的區間高度,因爲我們要維護的是這

原创 HDU 2196 Computer

1.題目描述:點擊打開鏈接 2.解題思路:本題是經典的樹形dp問題:求一棵樹上每個結點的最遠點的距離。這個問題可以用如下的方法解決:首先隨意選擇一個點作爲根結點進行dfs,求出所有點到根結點的最遠距離的那個結點,假設是p,接下來以p樹根,

原创 LA 4064 Magnetic Train Tracks

1.題目描述:點擊打開鏈接 2.解題思路:本題利用減法原理解決。根據題意,我們可以嘗試尋找鈍角三角形的個數,那麼只需要從C(n,3)中把這部分減掉,就是最後的答案了。注意到鈍角三角形的特點是最大的角度大於90度小於180度。我們可以先讓每

原创 UVa 1709 Amalgamated Artichokes

1.題目描述:點擊打開鏈接 2.解題思路:這是今年World Finals 的最簡單的題。因爲給的時間相當的寬,所以只需要提前計算出最大值後,用ans=max(mx[i-1]-y[i])更新答案即可。 3.代碼: #include<ios

原创 LA3357 Pinary

1.題目描述:點擊打開鏈接 2.解題思路:本題要求找第k個滿足題意的01串。演算後會發現,每一位的1首次出現的下標恰好就是斐波那契數列,比如,第0位的1在第1次出現,第1位的1在第2位出現,第2位的1在第3次出現,第3位的1在第5次出現。

原创 LA4015 Caves

1.題目描述:點擊打開鏈接 2.解題思路:本題屬於樹形dp問題,根據題意,我們會發現機器人在走的時候,需要在出發點,經過的點數以及是否返回到出發點這三條確定時候,才能完整的計算出走過的長度。因此,不妨令(u,k,flag)來表示從u出發,

原创 習題7-14 小木棍 UVa307

1.題目描述:點擊打開鏈接 2.解題思路:本題是一道非常經典的回溯法+剪枝的搜索題目。根據題意,我們可以注意到有下面4處重要的剪枝: (1)把所有的木棍從大到小排序,優先使用長木棍,這樣可以加快組合速度,而且對後面的剪枝有幫助。 (2)在