P2031 脑力达人之分割字串
字符串dp,f[i]表示主串到第i个字符,最多能分割成多少子串。
f[i]=max(f[i],f[k]+1);k是能匹配到的前一位。

 #include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<set>
#include<map>
#include<stack>
#include<cstring>
#define inf 2147483647
#define For(i,a,b) for(register int i=a;i<=b;i++)
#define p(a) putchar(a)
#define g() getchar()
//by war
//2017.10.29
using namespace std;
char a[],c[][];
int n;
int la,lb;
bool flag;
int f[];
int mx;
void in(int &x)
{
int y=;
char c=g();x=;
while(c<''||c>'')
{
if(c=='-')
y=-;
c=g();
}
while(c<=''&&c>='')x=x*+c-'',c=g();
x*=y;
}
void o(int x)
{
if(x<)
{
p('-');
x=-x;
}
if(x>)o(x/);
p(x%+'');
}
int main()
{
cin>>(a+);
la=strlen(a+);
in(n);
For(i,,n)
cin>>(c[i]+);
For(i,,la)
{
f[i]=mx;
For(j,,n)
{
flag=false;
lb=strlen(c[j]+);
if(lb<=i)
{
For(k,,lb)
if(a[i-lb+k]!=c[j][k])
{
flag=true;
break;
}
if(!flag)
f[i]=max(f[i],f[i-lb]+);
}
}
if(f[i]>mx)
mx=f[i];
}
o(f[la]);
return ;
}

最新文章

  1. tornado 学习笔记9 Tornado web 框架---模板(template)功能分析
  2. 如何通过一个类名找到它属于哪个jar包?
  3. 【改】iOS学习之键盘类型UIKeyboardType
  4. sql基础知识:日期的常用用法
  5. 「Ionic」设置开发环境
  6. 关于listview排序的说明
  7. 彻底卸载sublime txt
  8. ecmall数据库基本操作
  9. hdu 4454 Stealing a Cake (三分)
  10. Robolectric 探索之路
  11. 【Python实践-5】使用迭代查找一个list中最小和最大值
  12. Python_socketserver
  13. English Voice of &lt;&lt;Beautiful now&gt;&gt;
  14. 模拟curl函数
  15. Siki_Unity_3-7_AssetBundle从入门到掌握
  16. (转)List&lt;T&gt;的各种排序方法
  17. win10与linux双系统切换时间不一致的调整
  18. db.students.batchInsert is not a function :@(shell):1:1
  19. Ubuntu和windows文件共享问题
  20. solr核心概念、配置文件

热门文章

  1. 在虚拟机安装windows xp时所需要的序列号
  2. python之random模块分析(一)
  3. Django 查询集简述
  4. Ubuntu 16.04配置国内高速apt-get更新源【转】
  5. zabbix3.0.4安装grapha实现多台主机相同监控项集中展示
  6. ubuntu系统下Python虚拟环境的安装和使用
  7. Android 项目中文件夹作用(res文件夹详细介绍)
  8. jquery之data()
  9. vue系列之过渡效果
  10. 轻量架构ShuffleNet V2:从理论复杂度到实用设计准则