1039 重複子序列問題

2021-10-02 08:10:22 字數 892 閱讀 7436

pipi有兩個字串a和b,請你求出字串a最少重複幾次才能使得b是a的子串行。

我們稱x是y的子串行當且僅當可以從y中刪除若干個字元得到x。

例如對於a=「abb」, b=「bbaa」,則a重複3次之後得到"abbabbabb",此時b="bbaa"是"abbabbabb"的子串行。

注意,原始串a即算作重複一次。

多組資料。

第一行包含乙個字串a。

第二行包含乙個字串b。

a和b都只包含小寫字母。

對於30%的資料,1 <= |a|, |b| <= 100

對於90%的資料,1 <= |a|, |b| <= 1000

對於100%的資料,1 <= |a|, |b| <= 100000

乙個整數代表答案。如果無論重複多少次都達不到,輸出-1。

abbbbaa

///序列自動機演算法

#include

using

namespace std;

const

int n=

1e5+5;

int next[n][26

];char s1[n]

,s2[n]

;main()

int len2=

strlen

(s2+1)

,now=

1,ans=

1,flag=1;

for(

int i=

1;i<=len2;

)else}}

if(!now)

printf

("-1\n");

else

printf

("%d\n"

,ans);}

}

pipioj 1039 重複子序列問題

pipi有兩個字串a和b,請你求出字串a最少重複幾次才能使得b是a的子串行。我們稱x是y的子串行當且僅當可以從y中刪除若干個字元得到x。例如對於a abb b bbaa 則a重複3次之後得到 abbabbabb 此時b bbaa 是 abbabbabb 的子串行。注意,原始串a即算作重複一次。多組資...

codevs 1061 重複子串

題目描述 description 某電視台在每乙個星期天都有乙個福利彩票節目,在該節目中有乙個考察幸運觀眾記憶力的節目。節目的安排是這樣的 首先由節目主持人說出一串諸如 左1右2左2左3右4左1 的數值串,然後由幸運觀眾重複該數值串 如果幸運觀眾能全部記憶出節目主持人說的所有數值串,該觀眾將獲得一筆...

最長不重複子序列

其實是一道典型的雙指標問題,只要一直往後去輸入資料,如果遇到重複的資料,就讓begin指標往後移,直到重複的元素不再子串行內,在讀入新資料就可以了,每次遇到重複資料就把maxlength和當前的length比較去大值,就可以了 include include include include incl...