传送门

题解

#include <cstdio>
#include <cstring>
#define max(x, y) ((x) > (y) ? (x) : (y)) int p, k, w, n, m, num;
char s[2001], a[7][2001];
int f[2001][41], len[7], d[2001];
bool flag; int main()
{
scanf("%d %d", &p, &m);
for(int i = 1; i <= p; i++) scanf("%s", s + 20 * (i - 1) + 1);
n = strlen(s + 1);
scanf("%d", &num);
for(int i = 1; i <= num; i++)
{
scanf("%s", a[i] + 1);
len[i] = strlen(a[i] + 1);
}
memset(d, 127 / 3, sizeof(d));
for(int i = 1; i <= n; i++)
for(int j = 1; j <= num; j++)
{
if(i + len[j] - 1 > n || d[i] <= i + len[j] - 1) continue;
flag = 0;
for(int k = 1; k <= len[j]; k++)
if(s[i + k - 1] != a[j][k])
{
flag = 1;
break;
}
if(!flag) d[i] = i + len[j] - 1;
}
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
{
w = 0;
for(int k = i; k >= j; k--)
{
if(d[k] <= i) w++;
f[i][j] = max(f[i][j], f[k - 1][j - 1] + w);
}
}
printf("%d", f[n][m]);
return 0;
}

  

最新文章

  1. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)
  2. Effiective C++ (一)
  3. excel笔记
  4. 【开发手记一】老生常谈:简简单单配置ZED板开发环境
  5. 解决浏览器兼容问题的css hack
  6. PAT (Advanced Level) 1011. World Cup Betting (20)
  7. 3.VBScript基础
  8. luoguP1379 八数码难题[启发式搜索]
  9. Java 编程思想 Chapter_14 类型信息
  10. javascript语法之循环语句
  11. Spring StringRedisTemplate 配置
  12. 【13】python time时间模块知识点备查
  13. 解决oracle语句中 含数字的字符串按数字排序问题
  14. CAP理论(摘)
  15. SQL查询优化的一些建议
  16. 【HNOI2013】游走
  17. Linux内核中container_of函数详解
  18. linux 监控CPU 内存情况
  19. Scratch GUI
  20. iOS侧滑返回到隐藏导航栏的VC,导航栏会闪现一次

热门文章

  1. bzoj 1059: [ZJOI2007]矩阵游戏【匈牙利算法】
  2. Android之条形码、二维码扫描框架(非原创)
  3. Authorization 头信息为空的解决方案
  4. 洛谷P5055 【模板】可持久化文艺平衡树(FHQ Treap)
  5. DFS HDU 5305 Friends
  6. STL内存分配方式
  7. Elasticsearch--更好的搜索_加权得分,脚本,同义词
  8. 关于Pyhton多线程同步队列的应用
  9. Hibernate框架之HQL查询与Criteria 查询的区别
  10. Java基础概念语法