【題解】Luogu P4391 [BOI2009]Radio Transmission 無線傳輸
原題傳送門
這題需要用到kmp匹配
推導發現:
設迴圈節的長度為x,那麼kmp陣列前x個都是0,後面kmp[x+n]=n
先求出kmp陣列
答案實際就是len-kmp[len]
#include <bits/stdc++.h> #define N 1000005 using namespace std; char a[N]; int kmp[N]; int main() { int n; scanf("%d%s",&n,a); kmp[0]=kmp[1]=0; for(register int i=1,k=0;i<n;++i) { while(k&&a[i]!=a[k]) k=kmp[k]; kmp[i+1]=a[i]==a[k]?++k:0; } printf("%d",n-kmp[n]); return 0; }
相關推薦
【題解】Luogu P4391 [BOI2009]Radio Transmission 無線傳輸
原題傳送門 這題需要用到kmp匹配 推導發現: 設迴圈節的長度為x,那麼kmp陣列前x個都是0,後面kmp[x+n]=n 先求出kmp陣列 答案實際就是len-kmp[len] #include <bits/stdc++.h> #define N 1000005 using names
P4391 [BOI2009]Radio Transmission 無線傳輸(KMP)
16px names left 輸入輸出 turn ssi int tdi clu 題目描述 給你一個字符串,它是由某個字符串不斷自我連接形成的。 但是這個字符串是不確定的,現在只想知道它的最短長度是多少. 輸入輸出格式 輸入格式: 第一行給出字符串的長度,1 &l
【題解】Luogu P3052 【USACO12】摩天大樓裏的奶牛Cows in a Skyscraper
eat ring real several define courier u+ awt help 叠代加深搜索基礎 題目描述 A little known fact about Bessie and friends is that they love stair c
【題解】Luogu p2285 BZOJ1207 [HNOI2004]打鼴鼠
tumx algo uid 數據 ack LG 輸入輸出格式 owin time 題目描述 鼴鼠是一種很喜歡挖洞的動物,但每過一定的時間,它還是喜歡把頭探出到地面上來透透氣的。根據這個特點阿牛編寫了一個打鼴鼠的遊戲:在一個n*n的網格中,在某些時刻鼴鼠會在某一個網格探
P4391 [BOI2009]Radio Transmission
小寫字母 clu mis 定義 ans 格式 nbsp color 現在 描述: 給你一個字符串,它是由某個字符串不斷自我連接形成的。 但是這個字符串是不確定的,現在只想知道它的最短長度是多少. 輸入格式: 第一行給出字符串的長度,1 < L ≤
【題解】Luogu P3740 [HAOI2014]貼海報
woc,今天已經是day -1了 再寫一顆珂朵莉樹來++rp吧 否則就要AFO了qaq 這有可能是我最後一篇題解/部落格qaq 原題傳送門:P3740 [HAOI2014]貼海報 考前刷水題到底是對還是錯qaq 反正這題是很水 前置芝士:珂朵莉樹 窩部落格裡對珂朵莉樹的介紹 沒什麼好說的自己
【題解】luogu P3956 棋盤
luogu P3956 棋盤 題目描述 有一個m×m的棋盤,棋盤上每一個格子可能是紅色、黃色或沒有任何顏色的。你現在要從棋盤的最左上角走到棋盤的最右下角。 任何一個時刻,你所站在的位置必須是有顏色的(不能是無色的), 你只能向上、 下、左、 右四個方向前進。當你從一個格子走
【題解】 Luogu CF375D Tree and Queries
原題傳送門 莫隊好題 我一上來想寫線段樹,隨後覺得不好寫並棄坑 我們可以看見沒有修改操作,欽定莫隊 但這是在樹上,所以不能直接用莫隊(廢話) 我們要樹鏈剖分,使得節點和節點的子樹能在一個區間裡(不會樹鏈剖分的出門左轉洛咕樹鏈剖分模板) 剩下的就是最基礎的莫隊,但是前置和後置++,--要注意qaq,
【題解】Luogu P3901 數列找不同
原題傳送門 不錯的莫隊練手題 塊數就直接取sqrt(n) 對所有詢問進行排序 排序第一關鍵詞:l所在第幾塊,第二關鍵詞:r的位置 考慮Ai不大,暴力開陣列 add時如果加之後的數量是1 總數就加1 del時如果減之後的數量是0 總數就減1 每次比較總數和該次查詢區間的長度 相等的話就把
【題解】Luogu P3871 [TJOI2010]中位數
平衡樹板題 原題傳送門 這道題要用Splay,我部落格裡有對Splay的詳細介紹 每次加入一個數,把數插入平衡樹中 並且要記錄一共有多少個數 每次查詢就查詢平衡樹中第(總數-1)/2+1個數 十分暴力 #include <bits/stdc++.h> #define N 110005
【題解】Luogu P1972 [SDOI2009]HH的項鍊
原題傳送門 莫隊入門題 我部落格裡對莫隊的介紹 很多人說這題卡莫隊,但窩隨便寫了一個程式就過了qaq(雖說開了氧化) 我們在排序詢問時,普通是這樣qaq inline bool cmp(register query a,register query b) { return a.bl==b.b
【題解】Luogu SP3267 DQUERY - D-query
原題傳送門 這題和Luogu P1972 [SDOI2009]HH的項鍊很像,只是資料大小有些差別,題解 我部落格裡對莫隊的介紹 我們在排序詢問時,普通是這樣qaq inline bool cmp(register query a,register query b) { return a.bl
【題解】Luogu P2073 送花
原題傳送門 這題需要用到Splay 我們用一棵splay維護金錢 考慮c<=1000000 我們珂以把每種價格現在對應的美麗值存在一個a陣列中 這樣講有珂能不太清楚qaq,還是對著操作一個一個講 操作一: 先在這棵splay中查詢是否有這種花的金錢 如果有,直接跳過 如果沒有,a[c]
【題解】Luogu P2319 [HNOI2006]超級英雄
原題傳送門 這道題就是一個很簡單的二分圖匹配 二分圖匹配詳解 一開始想的是2-sat和網路流,根本沒想匈牙利和HK 這道題只要注意一點:當一個點匹配不成功之後就直接退出 剩下的就寫個二分圖最大匹配就行了 完整程式碼(不想寫HK) #include <bits/stdc++.h> #d
【題解】Luogu UVA1411 Ants
原題傳送門 部落格裡對二分圖匹配的詳細介紹 這道題是帶權二分圖匹配 用的是KM演算法 我們要知道一個定理:要使線段沒有相交,要使距離總和最小 我們先把任意一對白點、黑點的距離算一下 然後運用KM演算法 因為要最小權值,所以需要把權值取反來求最大。 #include <bits/stdc+
【題解】Luogu P5072 [Ynoi2015]盼君勿忘
眾所周知lxl是個毒瘤,Ynoi道道都是神仙題,題面好評 原題傳送門 一看這題沒有修改操作就知道這是莫隊題 我部落格裡對莫隊的簡單介紹 既然是莫隊,我們就要考慮每多一個數或少一個數對答案的貢獻是什麼 假設一個數x在區間[l,r]之間出現了y次,珂以很容易的求出該區間的長度length=r-l+1,那
【題解】Luogu P2690 接蘋果
題目描述 這道題以時間為階段,是一道很明顯的線性dp。 這道題有一個要點: 因為只有兩棵樹且初始為第一棵樹下,所以移動奇數次到達第二顆樹,移動偶數次則到達第一棵樹。 理解這個時候就可以直接推出狀態轉移方程了。 具體可以看下面的程式碼來理解。 #include <i
【題解】Luogu P5071 [Ynoi2015]此時此刻的光輝
眾所周知lxl是個毒瘤,Ynoi道道都是神仙題,題面好評 原題傳送門 一看這題沒有修改操作就知道這是莫隊題(我也只會莫隊) 我部落格裡對莫隊的簡單介紹 一個數N可以分解成\(p_1^{c_1}p_2^{c_2}…p_m^{c_m}\) 它的約數個數就是\((c_1+1)(c_2+1)…(c_m+1)
【題解】Luogu P5068 [Ynoi2015]我回來了
眾所周知lxl是個毒瘤,Ynoi道道都是神仙題,這道題極其良心,題面好評 原題傳送門 我們先珂以在\(O(n^2)\)的時間內bfs求出任意兩點距離 我們考慮如何計算從一個點到所有點的最短路長度小於等於k的點的數量 我們先求出來從一個點到所有點的最短路長度等於k的點的數量,這個珂以在bfs搜尋過程中完
【題解】Luogu P4450 雙親數
原題傳送門 這題需要運用莫比烏斯反演(懵逼鎢絲繁衍) 設F(t)表示滿足gcd(x,y)%t=0的數對個數,f(t)表示滿足gcd(x,y)=t的數對個數,實際上答案就是f(d) 這就滿足莫比烏斯反演的關係式了 顯然我們珂以得知F(t)=(b/t)*(d/t) 我們根據反演的第二個公式便珂以得出