luogu P1026 统计单词个数

摘要:
标题链接luoguP1026计算预处理父字符串中从i到j的最大单词数,以解决贪婪问题,然后dp[i][j]表示前一个i已经被剪切了k次。显然,代码#include#include#includeconstantmaxn=507;字符[maxn];字符[maxn],t[maxn';intdp[maxn][55];intn,k,q;整数[maxn][maxn];voidgettmp{intlen=strlen(p+1);对于{iffor{if(s[i+j-1]!

题目链接

luogu P1026 统计单词个数

题解

贪心的预处理母本串从i到j的最大单词数
然后dp[i][j] 表示从前i个切了k次最优解
转移显然

代码

#include<cstdio>
#include<algorithm>
#include<cstring>
const int maxn = 507; 
char a[maxn];   
char s[maxn],t[maxn];   
int dp[maxn][55];  
int n,k,q;
int num[maxn][maxn]; 

void get_tmp(char * p) {
	int len = strlen(p + 1);
	for(int i = 1;i <=n ;++i ) { 
		if(s[i] == a[i])
		for(int j = 2;j <= len;++ j) { 
			if(s[i + j - 1] != a[j]) break; 
			if(j == len) num[i][j] ++;
		}
	}
}
int main () { 
	scanf("%d%d", &n,&k); 
	int tmp = 0; 
	for(int len , i = 1;i <= n; ++i) {
		scanf("%s",a + 1); len = strlen(a + 1); 
		for(int j = 1;j <= len;++ j)  
			tmp ++, s[tmp] = a[j];
	} 
	n = strlen(s + 1)
	scanf("%d", &q); 
	for(int i = 1;i <= q;++ i) {  
		scanf("%s",t+1);
		get_count(t); 
	} 
	 
}

免责声明:文章转载自《luogu P1026 统计单词个数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇bzoj4543[POI2014]HotelFFT&amp;NTT&amp;多项式相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

生活常用单词

hyphen  连字符comma  逗号full stop;full point  句号dash  破折号question mark  问号exclamation 英[ˌekskləˈmeɪʃn] 美[ˌɛkskləˈmeʃən]  叹号stool  凳子teakettle  茶壶,烧水壶doorknob;handler 门把手gummed tape (封箱...

1013. Battle Over Cities (25)

It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know i...

HDU-2112 HDU Today

http://acm.hdu.edu.cn/showproblem.php?pid=2112 怎样把具体的字母的地点转换为数字的函数为题目的重点。 HDU Today Time Limit: 15000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submiss...

scanf()中的%c 不能正常输入的问题

#include <stdio.h> int main() { char a; int b; scanf("%d",&b); scanf("%c",&a); /******************************/ printf("%d",b); printf("%c",a...

英文词频统计预备,组合数据类型练习

1、下载一首英文的歌词或文章,将所有,.?!等替换为空格,将所有大写转换为小写,统计某几个单词出现的次数,分隔出一个一个的单词。s='''You were the shadow to my life Did you feel us&nb...

C/C++拾遗(二)

scanf函数 声明形式:int scanf(char *format, ...); scanf函数从标准输入中读取字符序列,按照format中的格式说明对字符序列进行解释,并把结果保存在其余的参数中。 当scanf函数扫描完其格式串,或者碰到某些输入无法与格式控制说明匹配的情况时,该函数终止,返回成功匹配并赋值的输入项的个数。 这里有一个有意思的程序:...