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...