hihocoder1465 字尾自動機 迴圈同構

2021-09-12 15:59:41 字數 846 閱讀 9769

[hihocoder1465]

描述小hi平時的一大興趣愛好就是演奏鋼琴。我們知道一段**旋律可以被表示為一段數構成的數列。

小hi發現旋律可以迴圈,每次把一段旋律裡面最前面乙個音換到最後面就成為了原旋律的「迴圈相似旋律」,還可以對「迴圈相似旋律」進行相同的變換能繼續得到原串的「迴圈相似旋律」。

小hi對此產生了濃厚的興趣,他有若干段旋律,和一部**作品。對於每一段旋律,他想知道有多少在**作品中的子串(重複便多次計)和該旋律是「迴圈相似旋律」。

分析

#include

#define ll long long

#define rint register int

using

namespace std;

const

int n=

2e5+10;

int t,n,m,lm,tot=

1,la=

1,ne[n][30

],len[n]

,siz[n]

,fa[n]

,c[n]

,a[n]

;char s[n]

,ch[n]

;ll ans;

bool v[n]

;void

add(

int c)}}

void

work()

}printf

("%lld\n"

,ans);}

intmain()

scanf

("%d"

,&t)

;while

(t--

)return0;

}

hihocoder 字尾陣列

時間限制 5000ms 單點時限 1000ms 記憶體限制 256mb 描述小hi平時的一大興趣愛好就是演奏鋼琴。我們知道乙個 旋律被表示為長度為 n 的數構成的數列。小hi在練習過很多曲子以後發現很多作品自身包含一樣的旋律。旋律是一段連續的數列,相似的旋律在原數列可重疊。比如在1 2 3 2 3 ...

hihocoder1415 字尾陣列三 重複旋律3

傳送門 題解 考慮求出兩串合在一起 中間加分隔符 字尾陣列,就是要求任意在兩個串中的 i,j min i leq k leq j 的最大值。考慮 i,j 一定是滿足 i j 1 且合法的時候最優。詳情見 hihocoder 解題方法提示 include include include include...

HihoCoder1415字尾陣列三 重複旋律3

時間限制 5000ms 單點時限 1000ms 記憶體限制 256mb 描述小hi平時的一大興趣愛好就是演奏鋼琴。我們知道乙個 旋律被表示為長度為 n 的數構成的數列。小hi在練習過很多曲子以後發現很多作品中的旋律有共同的部分。旋律是一段連續的數列,如果同一段旋律在作品a和作品b中同時出現過,這段旋...