国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

玲瓏OJ-1100 - 萌萌噠的第五題(kmp+dp)

2019-11-06 06:01:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
1100 - 萌萌噠的第五題

Time Limit:10s Memory Limit:128MByte

Submissions:372Solved:86

DESCRipTION

給出一個(gè)長(zhǎng)度為m的字符串,請(qǐng)問(wèn)有多少個(gè)長(zhǎng)度為n的字符串不存在子串等于給出的字符串。為了簡(jiǎn)化問(wèn)題,我們規(guī)定所有字符串只包含小寫英文字母。輸入數(shù)據(jù):包含多組輸入數(shù)據(jù)(<=15),每組數(shù)據(jù):第一行包含兩個(gè)整數(shù)n和m(1 <= n,m <= 1000)第二行包含一個(gè)長(zhǎng)度為m的字符串,只含有小寫字母。

INPUT包含多組輸入數(shù)據(jù)(<=15),每組數(shù)據(jù): 第一行包含兩個(gè)整數(shù)n和m(1 <= n,m <= 1000) 第二行包含一個(gè)長(zhǎng)度為m的字符串,只含有小寫字母。OUTPUT每組數(shù)據(jù)輸出一行,表示答案,這個(gè)答案可能會(huì)很大,所以只需要輸出答案對(duì)10^9+7求余的結(jié)果。SAMPLE INPUT2 2aa3 2aaSAMPLE OUTPUT67517525

SOLUTION

題解:http://www.ifrog.cc/acm/solution/16

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define maxn 1005#define Mod 1000000007int n,m,p[maxn],dp[maxn][maxn],c[maxn][30];char a[maxn];void kmp(){	int i,j=0;	p[j]=0;	for(i=2;i<=m;i++)	{		while(j>0 && a[j+1]!=a[i])			j=p[j];		if(a[j+1]==a[i])			j++;		p[i]=j;	}}int  main(){	int i,ans,j,k;	while(scanf("%d%d",&n,&m)!=EOF)	{		ans=0;		memset(dp,0,sizeof(dp));		scanf("%s",a+1);		kmp();		for(i=1;i<=m;i++)		{			for(j=0;j<26;j++)			{				int tmp=i,t=j+'a';				while(tmp>0 && a[tmp]!=t)				{					tmp=p[tmp-1]+1;					if(tmp==1 && a[tmp]!=t)					{						tmp=0;						break;					}				}				c[i][j]=tmp;			}		}		dp[0][0]=1;		for(i=1;i<=n;i++)			for(j=1;j<=m;j++)				 for(k=0;k<26;k++)				 {					 int t=k+'a';					 dp[i][c[j][k]]=(dp[i][c[j][k]]+dp[i-1][j-1])%Mod;				 }		for(i=0;i<m;i++)			ans=(ans+dp[n][i])%Mod;		PRintf("%d/n",ans);	}}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东至县| 鄢陵县| 安泽县| 正安县| 江津市| 岳西县| 济源市| 吴川市| 临江市| 乌苏市| 辉县市| 水富县| 余姚市| 杭州市| 永修县| 县级市| 蓬溪县| 三亚市| 松阳县| 宿松县| 靖州| 墨竹工卡县| 城口县| 三门县| 香格里拉县| 喜德县| 长垣县| 通城县| 阿拉善盟| 治多县| 东海县| 滕州市| 张掖市| 宁陕县| 崇州市| 汶川县| 东平县| 揭阳市| 上饶市| 安图县| 乌审旗|