最小表示法

2021-09-05 12:02:12 字數 571 閱讀 1301

最小表示法:判斷頭尾詳解的字串最小的字典序是從第幾個字串開始的。

具體思路:線性的,我們設立兩個下表,然後設立乙個變數len。

首先令i=0,j=1,len=0;

一開始,我們比較s[i+len]和s[j+len],如果相等的話,就讓len++。

如果s[i+len]>s[j+len],我們可以直接讓i移到i+len+1,因為在i->i+len這段區間裡,都不會使得獲得的字串最小。

如果s[i+len]j+len這段區間裡,也都不會使得獲得的字串字典序最小。

ac**:

#include using namespace std;

# define ll long long

const int maxn =2e5+10;

char str[maxn];

int get_min()

else

if(i==j)j++;

k=0;}}

return min(i,j);

}int main()

return 0;

}

最小表示法

最小表示法就是找出字串s的的迴圈同構串中字典序最小的乙個。那麼什麼是迴圈同構串呢。是 設s bcad 且s 是s 的迴圈同構的串。s 可以是 bcad 或者cadb,adbc,dbca 即在字串s中從i 0開始,從i迴圈到字串末尾,再從頭迴圈到i,所形成的字元就是s迴圈同構串。因為這樣的同構串不止乙...

最小表示法

最小表示法 思想 在字串迴圈同構問題中的應用 摘自周源的ppt 前言 最小表示法 比起動態規劃 貪心等思想,在當今競賽中似乎並不是很常見。但是在解決判斷 同構 一類問題中卻起著重要的作用。本文即將討論字串中的同構問題,如何巧妙地運用最小表示法來解題呢,讓我們繼續一起思考吧。到底什麼是迴圈同構的字串呢...

最小表示法

最小表示法與kmp演算法一樣都可以解決字串匹配問題,但效率更高,短,作用更大。最小表示法就是乙個字串的最小字典序。怎麼求乙個字串的最小字典序呢?首先將這個字串擴充套件一倍 建設存在d陣列裡 然後我們用三個指標i 0,j 1,k 0,來尋找最小字典序的開頭字母,為了優於kmp,我們要做到o n i表示...