給定乙個長度為n,可旋轉的字串環,求從哪個位置斷開的長度為n的字串字典序最小/大(以最小為例,最大同理)
bzoj1398
vijos1382尋找主人 necklace
當求出最小表示法之後,掃一遍即可比較兩個不可翻轉的環是否本質相同,比較本質應該是其常見用途吧;
1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include10 #includebzoj139811#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;
學習筆記 最小表示法
最小表示法 用於解決字串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...