又被“if(a=b)”坑了QAQ。。。写C++还是得开Warning,这么久了pascal还没改过来咋回事啊QWQ

  题目大意就不说了OWO

  网上的题解都不怎么看得懂啊。。。好像写得都很乱?还是我太sb了

  f[i][j][k][0]表示A串前i个字符和B串前j个字符能够匹配,并且分成k段,a[i]不选。f[i][j][k][1]同理但a[i]要选。

  于是。。。f[i][j][k][0]=f[i-1][j][k][1]+f[i-1][j][k][0];

       if(a[i]==b[j])f[i][j][k][1]=f[i-1][j-1][k-1][0]+f[i-1][j-1][k][1]+f[i-1][j-1][k-1][1];

  ①第一维滚动②快速取模

  字符串DP真的是我非常非常薄弱的一部分了,连状态设计都想了很久很久。。。

代码如下:

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define min(x,y) (x<y?x:y)
#define MOD(x) (x>=mod?x-mod:x)
using namespace std;
const int maxn=,mod=1e9+;
int n,m,K;
int f[][][][];
char s1[maxn],s2[maxn];
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int main()
{
read(n);read(m);read(K);
scanf("%s",s1+);scanf("%s",s2+);
for(int i=;i<=n;i++)
{
f[][][][]=f[][][][]=;
int up=min(i,m);
for(int j=;j<=up;j++)
{
for(int k=;k<=K;k++)
{
if(s1[i]==s2[j])
f[i&][j][k][]=MOD(MOD(f[(i&)^][j-][k][]+f[(i&)^][j-][k-][])+f[(i&)^][j-][k-][]);
else f[i&][j][k][]=;
if(j<i)f[i&][j][k][]=MOD(f[(i&)^][j][k][]+f[(i&)^][j][k][]);
else f[i&][j][k][]=;
}
}
}
printf("%d",MOD(f[n&][m][K][]+f[n&][m][K][]));
}

最新文章

  1. 第六代智能英特尔&#174; 酷睿™ 处理器图形 API 开发人员指南
  2. scp 上传文件到多个服务器节点
  3. Linux最常用命令之cd和ls
  4. Ubuntu 安装Samba服务器
  5. 固定导航(Sticky nav)
  6. iOS &amp; Mac 调试命令(VMMap&amp;Top)
  7. HTML5图片拖拽预览原理及实现
  8. 1.MySQL的安装(linux Ubuntu环境下)
  9. (转)jQuery LigerUI 插件介绍及使用之ligerTree
  10. 2015第10周日CSS—3
  11. Randoop测试类和方法(用例自动生成)
  12. SpringMVC常见注解
  13. Codeforces Round #544 (Div. 3) D F1 F2
  14. SpringBoot入门-2(两种热部署方式)
  15. 查找数组中重复的唯一元素+时间复杂度O(n)+空间复杂度O(1)
  16. jmeter导入DB数据再优化
  17. [ java 工具类] xml字符串解析成Map(DOM解析)
  18. windows多线程同步互斥--总结
  19. 安装sql server 2008 提示错误 SQL Server 2005 Express 工具。 失败
  20. java 散列

热门文章

  1. JSP学习(JavaBean)
  2. Qt-QML-自定义个自己的文本Text
  3. 使用InstallShield-Limited-Edition制作安装包
  4. 配置vConsole调试console
  5. 火狐metamask账号
  6. kvm网络虚拟化
  7. 《javascript模式--by Stoyan Stefanov》书摘--字面量和构造函数
  8. 调试Python的方式
  9. Spring Boot(四)@EnableXXX注解分析
  10. JDK版本Java SE、Java EE、Java ME的区别