HDU 3374(最小表示法)

2021-08-18 10:18:42 字數 489 閱讀 6970

題目鏈結

題意:給幾個字串,求每個字串的最小迴圈表示,最大迴圈表示(輸出序號最小的)以及出現的次數。

思路:前面兩個直接用模板可求解。出現次數實際上就是問迴圈節的個數,這時我們可以想到kmp演算法中的nextval陣列。

ac**:

#include#include#include#includeusing namespace std;

const int maxn=1000001;

int nextval[maxn];

char str[maxn];

void get_nextval(char s,int len)

}return min(i,j);

}int get_maxstring(char *s) //最大表示法

}return min(i,j);

}int main()

return 0;

}

HDU 3374(最小表示法 最大表示法)

hdu3374 題意 給你乙個字串,問這個字串經過移動後的字典序最小的字串的首字元位置和字典序最大的字串的首字元的位置,和能出現多少次最小字典序的字串和最大字典序的字串 題解 利用最小表示法與最大表示法o n 複雜度求出最小字典序和最大字典序串出現位置,然後利用kmp求出next,利用next陣列性...

HDU 3374 最小 大表示法 KMP

題意 給定乙個串s,該串有strlen s 個迴圈同構串,要求輸出字典序最小的同構串的下標,字典序最小的出現次數,最大的同構串的下標,字典中最大的出現次數。思路 對於求迴圈同構的字典序最小可以用最小表示法求得,最大也是一樣。然後設ds為字串s s。然後就可以用kmp求最小串在ds出現的次數和最大串出...

HDU 2609 最小表示法

題意 給定n個迴圈鏈 串 問有多少個本質不同的鏈 串 如果乙個迴圈鏈可以通過找乙個起點使得和其他串相同,那麼就認為這2個鏈是一樣的。就是求不同構的串 思路 對於求同構串可以用最小表示法,然後判斷是否相等就可以知道這2個是否是同構了。判重用的是set define crt secure no depr...