求乙個串在另乙個串複製n遍的串出現幾遍。顯然將兩個串做kmp,有很多重複,可以先把第二個串複製到比第乙個串長,計算結果,增長乙個串,計算結果,計算有多少個增長串,得到最終結果。
#include#include#include#include#include#define ll long long
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
using namespace std;
ll const maxn=100000;
ll n,sn,tn,fail[maxn+10],match[maxn*5+10];
char s[maxn+10],t[maxn*5+10];
int main()
fo(i,1,min(tn*n,tn*m+tn))
if(tn*n<=tn*m+tn)
ll tmp=0;
fo(i,1,tn*m)if(match[i]==sn)tmp++;
ll tmp2=0;
fo(i,tn*m+1,tn*m+tn)if(match[i]==sn)tmp2++;
printf("%lld",tmp+tmp2*(n-m));
return
0;}
201409 3 字串匹配
試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小...
20140903 字串匹配
問題描述 試題編號 201409 3 試題名稱 字串匹配 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母...
201409 3 字串匹配
問題描述 給出乙個字串和多行文字,在這些文字中找到字串出現的那些行。你的程式還需支援大小寫敏感選項 當選項開啟時,表示同乙個字母的大寫和小寫看作不同的字元 當選項關閉時,表示同乙個字母的大寫和小寫看作相同的字元。輸入格式 輸入的第一行包含乙個字串s,由大小寫英文本母組成。第二行包含乙個數字,表示大小...