当前位置: 首页 > news >正文

《P2679 [NOIP 2015 提高组] 子串》

题目背景

NOIP2015 Day2T2

题目描述

有两个仅包含小写英文字母的字符串 A 和 B。

现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串。请问有多少种方案可以使得这个新串与字符串 B 相等?

注意:子串取出的位置不同也认为是不同的方案。

输入格式

第一行是三个正整数 n,m,k,分别表示字符串 A 的长度,字符串 B 的长度,以及问题描述中所提到的 k,每两个整数之间用一个空格隔开。

第二行包含一个长度为 n 的字符串,表示字符串 A。

第三行包含一个长度为 m 的字符串,表示字符串 B。

输出格式

一个整数,表示所求方案数。

由于答案可能很大,所以这里要求输出答案对 1000000007 取模的结果。

输入输出样例

输入 #1复制

6 3 1 
aabaab 
aab

输出 #1复制

2

输入 #2复制

6 3 2 
aabaab 
aab

输出 #2复制

7

输入 #3复制

6 3 3 
aabaab 
aab

输出 #3复制

7

说明/提示

样例解释

所有合法方案如下:(加下划线的部分表示取出的字串)

样例 1:aab​aab,aabaab​。
样例 2:a​ab​aab,a​abaab​,aa​baab​,aaba​ab​,aa​b​aab,aa​baab​,aabaa​b​。
样例 3:a​a​b​aab,a​a​baab​,a​aba​ab​,a​abaa​b​,aa​ba​ab​,aa​baa​b​,aaba​a​b​。

数据范围

对于第 1 组数据:1≤n≤500,1≤m≤50,k=1;
对于第 2 组至第 3 组数据:1≤n≤500,1≤m≤50,k=2;
对于第 4 组至第 5 组数据:1≤n≤500,1≤m≤50,k=m;
对于第 1 组至第 7 组数据:1≤n≤500,1≤m≤50,1≤k≤m;
对于第 1 组至第 9 组数据:1≤n≤1000,1≤m≤100,1≤k≤m;
对于所有 10 组数据:1≤n≤1000,1≤m≤200,1≤k≤m。

代码实现:

#include <bits/stdc++.h>
#define id (p&1)
using namespace std;
const int N=1e3+10,M=210,Mod=1e9+7;

int d[2][N][M],s[2][N][M],n,m,k;
char A[N],B[M];

void fast()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}

int main()
{
fast();

cin>>n>>m>>k>>(A+1)>>(B+1);

    //初始化
for(int i=0;i<=n;i++)
s[0][i][0]=1;

    for(int p=1;p<=k;p++)
{
memset(d[id],0,sizeof(d[id]));
memset(s[id],0,sizeof(s[id]));

        for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(A[i]==B[j])
d[id][i][j]=(d[id][i-1][j-1]+s[id^1][i-1][j-1])%Mod;
else
d[id][i][j]=0;
s[id][i][j]=(s[id][i-1][j]+d[id][i][j])%Mod;
}
}

    cout<<s[k&1][n][m]<<endl;
return 0;
}

http://www.dtcms.com/a/442632.html

相关文章:

  • 011 Rust数组
  • 【贪心之临项交换】P8732 [蓝桥杯 2020 国 ABC]|普及
  • macOS 内核路由表操作:直接 API 编程指南
  • 如何做英文系统下载网站椒江做国际网站的公司
  • Linux常用命令使用大全,含运行示例。
  • 实战项目——前端
  • 基于Vue的园区农机管理系统的设计与实现toepr41x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • Python 3.14.0rc3 新特性说明(对比3.13版本)
  • 中国建设基础设施公司网站网站建设要什么知识
  • 网站建设培训会讲话合肥做网站需要多少钱
  • Python爬虫四大核心工具解析
  • 用Python的psutil库来获取操作系统的内存详情示例
  • 如何选择网站关键词公司注册查询网
  • AmberTools25 发布
  • 【ROS2学习笔记】Launch 文件
  • 网站建设推广襄樊电子商务网站建设管理答案
  • 电子商务网站建设需要多少钱怎样注册企业邮箱
  • HTML 表格
  • 在JavaScript / HTML中,转移字符导致js生成的html出错
  • 手机网站格式商城jsp可以做网站首页吗
  • Docker 完整教程 | 从基础到实战(3,4)
  • 报告网站开发环境网站想做个链接怎么做
  • wordpress 站内搜索慢开源低代码
  • Sass 与 Bootstrap 5的区别是什么?
  • 福州+网站建设+医疗wordpress干嘛用的
  • o2o网站平台怎么做wordpress 3.8.1 漏洞
  • Linux根目录结构清单:一文掌握“伪目录”与19个关键文件夹
  • 总结网站推广策划书的共同特点广告网站模板下载 迅雷下载不了
  • 网站域名骗子做静态网站选用什么服务器
  • 老题新解|正常血压