學習筆記 最小表示法

2022-04-06 13:20:02 字數 1058 閱讀 7923

給定乙個長度為n,可旋轉的字串環,求從哪個位置斷開的長度為n的字串字典序最小/大(以最小為例,最大同理)

bzoj1398

vijos1382尋找主人 necklace

當求出最小表示法之後,掃一遍即可比較兩個不可翻轉的環是否本質相同,比較本質應該是其常見用途吧;

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #include

11#define run(i,l,r) for(int i=l;i<=r;i++)

12#define don(i,l,r) for(int i=l;i>=r;i--)

13#define ll long long

14#define ld long double

15#define inf 0x3f3f3f3f

16#define mk make_pair

17#define fir first

18#define sec second

19#define il inline

20#define rg register

21#define pb push_back

22using

namespace

std;

23const

int n=2000010;24

intn;

25char

s[n],t[n];

26int cal(char *s)

31else 32}

33return

min(i,j);34}

35int

main()46}

47if(!fg)

48else53}

54return0;

55 }//

by tkys_austin;

bzoj1398

學習筆記 最小表示法

最小表示法 用於解決字串s的迴圈同構串中字典序最小的那個,稱為s的最小表示。eg.s abcd 則其迴圈同構串為 abcd dabc cdab bcda 最小的為 abcd 演算法思路 因為迴圈同構問題,所以可以先複製乙份s到s後邊,形成ss。之後雙指標i,j向後掃瞄,i,j所指代表以i,j為開始的...

學習筆記 最小表示法

一 最小表示法解決的問題 找到乙個字串的迴圈同構串中字典序最小的那個串。二 字串的迴圈同構 比如長度為5字串 abcde 它的5個迴圈同構串有 abcde,bcdea,cdeab,deabc,eabcd 其中字典序最小的串為 abcde 三 求 abcde 的字典序最小的迴圈同構串 1.把 abcd...

筆記 最小表示法

引言 用於判斷兩個字串不計順序是否相等的問題。引例 a abcd b cdba 分析 若乙個乙個的列舉的話,時間複雜度高達 由這個簡單的題得出來的簡單思想 如果兩列數是相同的,那麼他們排完序過後的數列也一定是相同的 專有名詞 迴圈同構 字串s abcd 那麼它的迴圈同構就有 bcda cdab da...