wikioi 1040 统计单词个数
来源:互联网 发布:mysql root免密码登录 编辑:程序博客网 时间:2024/06/04 18:35
http://wikioi.com/problem/1040/
字符串的题一向这么恶心.
就是到划分型dp
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int word[201][201], dp[201][201][41];char c[21], w[6][10], c0[201], c1[201];int d, p, k, s, ma, le[6], len;int main(){ int i, j, l, m, yes, x, st; scanf("%d", &d); for(int de = 0; de < d; de++) { scanf("%d%d", &p, &k); for(j = 0; j < p; j++) { scanf("%s", c); if(j == 0)strcpy(c0, c);//初始化成一个字符串 else strcat(c0, c);//把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。 } len = strlen(c0); scanf("%d", &s); for(j = 0; j < s; j++) { scanf("%s", w[j]); le[j] = strlen(w[j]); }//词典 for(i = 0; i < len; i++) for(j = 0; j < len; j++) word[i][j] = 0; for(i = len-1; i >= 0; i--) for(j = len-1; j >= 0; j--){ for(l = 0; l < s; l++){ yes = 0; if(c0[j] == w[l][0] && le[l] <= i-j+1) { yes = 1; for(m = 0; m < le[l]; m++)if(c0[j+m] != w[l][m]) { yes = 0; break; } } if(yes == 1) break;//如果i-j间有单词 } if(yes == 1) word[j][i] = word[j+1][i]+1; //i~j间的单词总数 else word[j][i] = word[j+1][i]; }
for(st = 1; st <= k; st++)//dp 过程 for(i = 0; i < len-st+1; i++) for(j = i+st-1; j < len; j++){ if(st == 1)//控制划分次数 { dp[i][j][st] = word[i][j]; continue; } for(ma = 0, l = i+st-2; l < j; l++) { x = dp[i][l][st-1]+word[l+1][j]; if(x > ma) ma = x;//记录最大值 } dp[i][j][st] = ma; } printf("%d\n", dp[0][len-1][k]); memset(dp,0,sizeof(dp)); memset(word,0,sizeof(word)); } return 0;}
- 【wikioi】1040 统计单词个数
- wikioi 1040 统计单词个数
- wikioi p1040 统计单词个数
- wikioi-天梯-普及一等-划分dp-1040:统计单词个数
- 1040 统计单词个数
- wiki-1040统计单词个数
- wiki 1040 统计单词个数
- CODEVS 1040 统计单词个数
- Codevs 1040 统计单词个数
- CODEVS 1040统计单词个数
- CODE[VS] 1040 统计单词个数
- vc 统计单词个数
- 统计单词个数
- 统计单词个数
- 统计单词个数
- 统计单词个数
- 统计单词个数
- 统计单词个数
- 我得vim配置。下载即用。
- jython 执行python脚本 得到输出
- 函数代码同步
- UVA 11384 - Help is needed for Dexter(递归)
- 求高精度幂
- wikioi 1040 统计单词个数
- 一口一个设计模式--设计模式收尾
- ie8本地图片上传预览
- skynet框架 源码分析 二
- shared_ptr智能指针的简单实现
- PickerView
- BorderLayout 边界布局管理器
- hdu 1166 敌兵布阵(线段树)
- 挂载U盘或移动硬盘方法