pku1509 最小表示法 字尾陣列

2021-05-26 21:24:03 字數 489 閱讀 3132

求乙個串(可以迴圈,即前面的字元可以新增到末尾)的最小字典序表示序列,且保證首位置下標最前。

此題用最小表示法很簡單,先將串加倍,然後最小表示即可。

此題也可以用字尾陣列,先將串加倍,只需要找到height陣列中最靠前且該字尾長度夠,然後再找其中下標最靠前的。。

#includeusing namespace std;

const int n=20010;

char s[n];

int n;

#define _min(i, j) ij?i:j

int minp(char *s, int n)

return _min(i, j);

}int main()

{ int i, cas;

scanf("%d", &cas);

while(cas--)

{ scanf("%s", s);

n = strlen(s);

for(i=0; i

POJ 1509 最小表示法 字尾自動機

題意 給你乙個字串的環,求從那個位置起字串的字典序最小。題解 最小表示法。鏈結 view code 1 include 2 include 3 include 4 include 5 include 6 7 define n 202008 求最小迴圈同構串起點 9using namespace st...

最小表示法

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

最小表示法

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