原创 hdu4892 Defence of the Trees 最短路

      平面上有k種樹,給出所有樹的座標,並給出M個木樁的座標,求以木樁爲頂點,圍成包含所有K種樹的最小簡單多邊形的周長。思路基本就是官方題解給的思路,貼個鏈接:http://blog.sina.com.cn/s/blog_6bdde

原创 la4080 Warfare And Logistics 枚舉+最短路

      給一個圖,求出任意兩點的最短路之和ans1,和刪除一條邊和,可以得到的最大的任意兩點間的最短路之和ans2,若兩點不連通,則兩點間最短距離視爲l。 第一想法就是枚舉每條邊,然後跑n次最短路,但這樣的複雜度是1000*1000*

原创 codeforces 452E Three strings 後綴數組+並查集

      給三個串s1,s2,s3,對於每個長度L(1<=L<=min(length(s1,s2,s3)))求有多少個三元組<p1,p2,p3>使得s1[p1...p1+L-1]==s2[p2..p2+L-1]==s3[p3..p3+L

原创 tc srm631 (250,500)

250:給一個n*n的字符矩陣,每次操作可以選擇一行,把W全變成B或者把B全變成W,要求不存才任何一列有連續N/2以上各相同的字符,問最少可以通過幾次操作,使得矩陣滿足要求。保證N是偶數。         每次操作實際上就是把一行全變成W

原创 poj1509 Glass Beads SAM

    最近打算把SAM撿回來,找個水題先練練手...這題是給一個字符串,首尾相連成環,求一個位置,使得從這個位置開始走一圈得到的串字典序最小。方法很多,後綴自動機也能做,把原串複製兩邊,一次插入到自動機中,然後從根節點開始,從小打到走l

原创 hdu4726 Kia's Calculation 貪心

 給兩個數,進行不進爲加法(比如9+9=8),可以調換每個數中數字的位置,但不能有前導零,求A+B得最大值。          題目要求不能有前導零,那麼我們就先找出來一個不使用0可以得到的最大的數,把他輸出後剩下的就可以正常求了,從9到

原创 codeforces 451D Count Good Substrings 枚舉

   一個只包含a,b字符串,可以將連續若干個相同的字符壓縮成一位,比如abaaabb -> abab,如果一個串壓縮之後是一個迴文串,那麼這個串就是一個good string,現在求給出的串的所有子串裏,長度爲偶數和奇數的good st

原创 CF446C DZY Loves Fibonacci Numbers 線段樹

         給一個序列,接下來有若干條命令 1 L R : 給區間[L,R]之間的每個位置i,加上Fib(i-L+1),Fib(i)表示斐波那契數列第i項 2 L R : 返回區間[L,R]的區間和。          利用斐波那契

原创 spoj7258 Lexicographical Substring Search(SUBLEX) 後綴自動機

    給一個字符串S,若干個查詢,每個查詢k輸出字典序第k小的S的子串。把字符串一次插入到自動機中,由於在不考慮父邊的情況下,可以看做一個有向無環圖,那麼我們可在在這個圖上進行dp,令dp[i]表示從節點i開始有多少個子串,轉移dp[i

原创 la3486 Cells 圖的dfs

       給一棵樹,若干個詢問,每次詢問兩個節點x,y,問x是否爲y的祖先。        怎麼看都是個裸題..但是數據略大..最多可能會有2000W個節點...其中,最多30W個節點是有孩子的....上來直接裸了一個LCA,結果莫名

原创 TC SRM629 500pt CandyCollection DP

       有一類糖果,每個糖果有兩個屬性分別是形狀和味道,糖果的形狀可以在購買時看到,而味道在購買時是不知道的,約定每種形狀的糖果,恰好只有兩種不同的味道,並且對於每一種味道,恰好只有兩種形狀的糖果會有這種味道,現對於每一種形狀的糖果

原创 hdu4689 Turn the pokers 組合

    m張相同的撲克牌,n個操作,每次操作可以選擇反轉其中任意Xi張,問n次操作完後,這m張撲克牌有多少種狀態。雖然題意看的有點蒙,不過hint還是把要做的事解釋的挺清楚了。最後的狀態數只和正面(或者反面)的牌的數量有關,所以只要求出來

原创 codeforces 461C 暴力+BIT

        題意是這點線段,每次兩種操作,1 x表示把線段以x作爲新的起點摺疊,2 x y表示查詢[x,y]這個區間有幾條單位線段..詳情參考原題給出樣例解釋...首先給每個線段編號,a[i]表示[i,i+1]這段有幾個單位線段,那麼

原创 hdu5008 Boring String Problem 後綴數組+二分+RMQ

      題意大概就是給一個串,每次查詢q,令k=(q^l^r)+1,其中^表示異或,l,r是上次查詢的答案,初始爲0,去串中字典序第k小的子串最靠左出現的位置。之前做過一題 SPOJ 的SUBLEX基本和這題一樣,不過那題只要找到第k

原创 hdu5015 233 Matrix 矩陣快速冪

      按列遞推,每次轉移乘上一個矩陣,推導出的矩陣是 /*============================================================================= # Autho