AcWing 158 項鍊 字串最小表示法

2021-10-25 08:46:03 字數 1026 閱讀 8536

有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!

在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還(顯然其中最多只有乙個人說了真話)。

達達要求每個人都寫了一段關於自己項鍊的描述: 項鍊上的寶石用數字0至9來標示。

乙個對於項鍊的表示就是從項鍊的某個寶石開始,順指標繞一圈,沿途記下經過的寶石,比如項鍊: 0-1-2-3 ,它的可能的四種表示是0123、1230、2301、3012。

達達現在心急如焚,於是他找到了你,希望你能夠編寫乙個程式,判斷兩個給定的描述是否代表同乙個項鍊(注意,項鍊是不會翻轉的)。

也就是說給定兩個項鍊的表示,判斷他們是否可能是一條項鍊。

輸入格式

輸入檔案只有兩行,每行乙個由字元0至9構成的字串,描述乙個項鍊的表示(保證項鍊的長度是相等的)。

輸出格式

如果兩個對項鍊的描述不可能代表同乙個項鍊,那麼輸出』no』,否則的話,第一行輸出乙個』yes』,第二行輸出該項鍊的字典序最小的表示。

資料範圍

設項鍊的長度為l,1≤l≤1000000

輸入樣例:

2234342423

2423223434

輸出樣例:

yes2234342423

#include

#include

using

namespace std;

const

int n =

2000010

;char a[n]

, b[n]

;int n;

intget_min

(char f)

else

}int res =

min(i, j)

;

f[res + n]=0

;return res;

}int

main()

return0;

}

acwing 158 項鍊 字串的最小表示 模板

兩個字串,判斷它們是不是同構的,如果同構,輸出最小表示。最小表示法模板題。pragma warning disable 4996 include include include include include include include includeusing namespace std ty...

158 項鍊 字串的最小表示

有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還 顯然其中最多只有乙個人說了真話 達達要求每個人都寫了一段關於自己項鍊的描述 項鍊上的寶石用數字0至9來標示。乙個對於項鍊的表示就是從項鍊的...

158 項鍊 字串的最小表示

有一天,達達撿了一條價值連城的寶石項鍊,但是,乙個嚴重的問題是,他並不知道項鍊的主人是誰!在得知此事後,很多人向達達發來了很多郵件,都說項鍊是自己的,要求他歸還 顯然其中最多只有乙個人說了真話 達達要求每個人都寫了一段關於自己項鍊的描述 項鍊上的寶石用數字0至9來標示。乙個對於項鍊的表示就是從項鍊的...