最小 或最大 表示法

2021-10-04 17:35:36 字數 850 閱讀 8578

題目:click

看插頭dp看到的記錄一下。

問乙個迴圈的字串,也就是首尾相接的環形字串的字典序最小的運算元,每次可以把前面的乙個字元移動到尾部。

定義兩個指標變數i=0,j=1,k=0表示以i或者j開始長度為k的字串。

1:去比較s[(i+k)%n]與s[(j+k)%n]的大小

2:相等的話k++;

3:a:如果s[(i+k)%n]大的話,i+=k+1 相當於右移,j=i+1,k=0重新開始

b:否則,將j移動。

所有的終止條件i#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 0x3f3f3f3f

#define max_len 50100*4

using

namespace std;

typedef

long

long ll;

char s[

10100];

intsolve()

if(temp>0)

i+=k+1

;else

j+=k+1;if

(i==j)

j=i+1;

k=0;

}return

min(i,j)+1

;}intmain()

return0;

}

最大最小表示法

時間複雜度 o n 應用 比較兩個環形串是否是同一字串 判重 判同分異構等 判同分異構 都化為最小或最大 看有幾個不一樣的就好了。放到set裡。最小表示法是我在看插頭dp的時候看到的乙個名詞,就先來看了一下這個演算法,還是蠻簡單的,有乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字...

最小最大表示法

乙個首位相連的字串,我們要尋找乙個位置,從這個位置向後形成乙個新字串,我們需要使這個字串字典序最小。有乙個字串str,下標為 0 len 我們這裡要i 0,j 1,k 0,表示從i開始k長度和從j開始k長度的字串相同 i,j表示當前判斷的位置 1 當str i k str j k 時 k 2 當st...

最小 最大 表示法

最小表示法是求與某個字串迴圈同構的所有字串中,字典序最小的串是哪個。比如說乙個字串jdrakioi,它長為8,也就是說最多有八種迴圈同構的方法。jdrakioi drakioij rakioijd akioijdr kioijdra ioijdrak oijdraki ijdrakio。這幾個串在原...