原创 HDU 3374 String Problem(最大最小表示+KMP)題解

題意:給你一個字符串,這個字符串可以這樣操作:把第一個字符放到最後一個形成一個新的字符串,記原式Rank爲1,每操作一步Rank+1,問你這樣操作得出的最小字典序的字符串的Rank和這樣的字符串有幾個,最大字典序的字符串的Rank和這樣的

原创 SPOJ BALNUM Balanced Numbers(數位DP+狀態壓縮)題解

思路:把0~9的狀態用3進製表示,數據量3^10代碼:#include<cstdio> #include<map> #include<set> #include<queue> #include<cstring> #include<stri

原创 POJ 2886 Who Gets the Most Candies? (線段樹)題解

題意:一堆小朋友圍成一個圈,規定從k開始玩,每個被選中的人都有一個數字,正數代表從他左邊開始數num,負數從右邊數,被選中的人繼續按照上述操作,直到都退出圈子,第i個退圈的人能拿到一個點數,這個點數是i的因數個數(比如第4個人拿3點)。問

原创 HYSBZ 1036 樹的統計Count(樹鏈剖分)題解

思路: 樹鏈剖分,不知道說什麼...我連模板都不會用 代碼: #include<map> #include<ctime> #include<cmath> #include<stack> #include<queue> #include<

原创 HDU1510 White rectangles( 亂搞 O(n^3) )題解

思路: 友誼賽的時候一直想到了,但是沒想出來怎麼遍歷才能找到所有矩陣,卡住了。 這裏講一下完整思路:我們用一個num[i][j]表示第i行第j列每一列連續的白色格子數量,然後我們定義一個MIN,並且每次都更新MIN的值(因爲矩陣高度只和最

原创 更新

現在博客園更新

原创 HDU 2457 DNA repair(AC自動機+DP)題解

題意:給你幾個模式串,問你主串最少改幾個字符能夠使主串不包含模式串 思路:從昨天中午開始研究,研究到現在終於看懂了。既然是多模匹配,我們是要用到AC自動機的。我們把主串放到AC自動機上跑,並保證不出現模式串,這裏對AC自動機的創建有所改動

原创 HDU 2222 Keywords Search(AC自動機)題解

題意:給你幾個keywords,再給你一段文章,問你keywords出現了幾次。 思路:這裏就要用到多模匹配算法AC自動機了,AC自動機需要KMP和字典樹的知識,匹配時是在字典樹上,失配我們就要用到類似KMP的失配值了,如果失配,我們就沿

原创 HDU 5934 Bomb(tarjan/SCC縮點)題解

思路:建一個有向圖,指向能引爆對象,把強連通分量縮成一點,只要點燃圖中入度爲0的點即可。因爲入度爲0沒人能引爆,不爲0可以由別人引爆。 思路很簡單,但是早上寫的一直錯,改了半天了,推倒重來才過了... #include<cstdio>

原创 HDU 6342 Expression in Memories(模擬)多校題解

題意:給你一個規則,問你寫的對不對。 思路:規則大概概括爲:不能出現前導零,符號兩邊必須是合法數字。我們先把所有問號改好,再去判斷現在是否合法,否則問題會變得很比不分開判斷複雜。比如0?0判斷到第2個0時你還要去看前一個?是什麼。 下面的

原创 UVALive - 2927 "Shortest" pair of paths(最小費用最大流)題解

題意:有n個機器,機器之間有m條連線,我們需要判斷機器0到n-1是否存在兩條線路,存在輸出最小費用。 思路:我們把0連接超級源點,n-1連接超級匯點,兩者流量都設爲2,其他流量設爲1,那麼只要最後我們能找到超級匯點和超級源點的流量爲2就說

原创 POJ 1860 Currency Exchange(最短路&spfa正權迴路)題解

題意:n種錢,m種匯率轉換,若ab匯率p,手續費q,則b=(a-q)*p,你有第s種錢v數量,問你能不能通過轉化讓你的s種錢變多? 思路:因爲過程中可能有負權值,用spfa。求是否有正權迴路,dis[s]是否增加。把dis初始化爲0,然後

原创 HDU 3065 病毒侵襲持續中(AC自動機)題解

題意:要你找到主串中每個模式串的個數。 思路:題目都沒說是多組數據,結果沒while(~)直接WA了,和上一題差不多,可以用map或者開個數組儲存。指針要記得回收內存,不然MLE。 #include<cstdio> #include<v

原创 POJ 3259 Wormholes(最短路&spfa正權迴路)題解

題意:給你m條路花費時間(雙向正權路徑),w個蟲洞返回時間(單向負權路徑),問你他能不能走一圈回到原點之後,時間倒流。 思路:題意有點難看懂,我們建完邊之後找一下是否存在負權迴路,存在則能,反之不能。判斷負權迴路可以用一個cnt,這個sp

原创 POJ 3268 Silver Cow Party(最短路&Dijkstra)題解

題意:有n個地點,有m條路,問從所有點走到指定點x再走回去的最短路中的最長路徑 思路:用Floyd超時的,這裏用的Dijkstra。 Dijkstra感覺和Prim和Kruskal的思路很像啊。我們把所有點分爲兩個集合:S(和源點在同一集