题目戳这里

一句话题意

给你两个字符串A,B从A中取出K个不重合子串(顺序与在A中顺序相同)组成B,问有多少种方案?

Solution

话说重打还是出各种错误也是醉了

先看题目,因为答案与A串,B串和拆分次数都有关,那么我们把这些都定义进DP方程中:

定义f[i][j][k][0]代表选到A串的前i个字符中选k个子串组成B[1-j],且第i个不选。

那么f[i][j][k][1]就是代表选到A串的前i个字符中选k个子串组成B[1-j],且第i个选。

定义好状态就很好做了:

如果这个不选,那么很明显就等于前一个 选+不选 ,所以:

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

那么如果选呢?首先需要注意因为要选,所以需要A[i]==B[j],否则不匹配。先看转移方程:

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

f[i-1][j-1][k][1]说明选i并且接在i-1后面组成一整个子串。

f[i-1][j-1][k-1][0] 因为i-1不选,所以需要从k-1转移过来。

f[i-1][j-1][k-1][1] i-1选了,i也可以单独组成子串。

注意事项:

1.因为模数是1e9+7,三个1e9+7就会爆int,所以第二个转移方程需要加两个模一下,再加第三个 (WA了40分)。

2.如果直接定义f数组 空间复杂度是 1000200200*2=8e7 超过了128MB,并且我们的转移方程中 i 的状态只与 i-1 有关,所以需要滚掉第一维。

Coding

#include<bits/stdc++.h>
using namespace std;
const int P = 1e9+7;
const int N = 205;
int t,n,m,f[2][N*5][N][2],K;
char A[N*5],B[N];
int main()
{
cin>>n>>m>>K;
scanf("%s",A+1);
scanf("%s",B+1);
f[0][0][0][0]=1;
for(int i=1;i<=n;i++)
{
t=!t;f[t][0][0][0]=1;
for(int j=1;j<=min(i,m);j++)
for(int k=1;k<=min(j,K);k++)
{
f[t][j][k][0]=(f[!t][j][k][0]+f[!t][j][k][1])%P;
if(A[i]==B[j])
{
f[t][j][k][1]=(f[!t][j-1][k][1]+f[!t][j-1][k-1][0])%P;
f[t][j][k][1]=(f[t][j][k][1]+f[!t][j-1][k-1][1])%P;
}
else f[t][j][k][1]=0;
}
}
cout<<(f[t][m][K][1]+f[t][m][K][0])%P;
return 0;
}

洛谷 2679 [NOIP 2015] 子串的更多相关文章

  1. 洛谷 P2678 [ NOIP 2015 ] 跳石头 —— 二分答案

    题目:https://www.luogu.org/problemnew/show/P2678 二分答案. 代码如下: #include<iostream> #include<cstd ...

  2. 【noip】跟着洛谷刷noip题2

    noip好难呀. 上一个感觉有点长了,重开一个. 36.Vigenère 密码 粘个Openjudge上的代码 #include<cstdio> #include<iostream& ...

  3. 洛谷模拟NOIP考试反思

    洛谷模拟NOIP考试反思 想法 考了这么简单的试qwq然而依然emmmmmm成绩不好 虽然本次难度应该是大于正常PJ难度的但还是很不理想,离预估分数差很多qwq 于是就有了本反思嘤嘤嘤 比赛链接 原比 ...

  4. 洛谷 P4665 [BalticOI 2015]Network

    洛谷 P4665 [BalticOI 2015]Network 你有一棵 $ n $ 个节点的树,你可以在树上加一些边,使这棵树变成一张无重边.自环的图,且删掉任意一条边它仍然联通.求最少要加多少条边 ...

  5. 洛谷 P3951 NOIP 2017 小凯的疑惑

    洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付 ...

  6. 【noip】跟着洛谷刷noip题

    传送门 1.铺地毯 d1t1 模拟 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> # ...

  7. 题解——洛谷 P2680 NOIP提高组 2015 运输计划

    树上差分加上二分答案 详细题解待填坑 #include <cstdio> #include <algorithm> #include <cstring> using ...

  8. UOJ #149 [NOIP 2015] 子串

    传送门 Solution DP+滚动数组. DP状态 \(dp[i][j][k]\): \(A\)的第\(i\)个字符和\(B\)的第\(j\)个字符匹配且该字符在第\(k\)个子串中的方案数. 转移 ...

  9. 洛谷 P3960 [ NOIP 2017 ] 列队 —— 线段树

    题目:https://www.luogu.org/problemnew/show/P3960 NOIP 题,不用很复杂的数据结构...但又参考了许多: 要求支持维护删除第 k 个和在末尾插入的数据结构 ...

随机推荐

  1. Android学习(十九)Dialog对话框

    一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...

  2. 51单片机 | 实现SMG12864液晶显示器操作

    ———————————————————————————————————————————— SMG12864液晶显示器 128*64个点位,可以显示图形或8*4个汉字 - - - - - - - - - ...

  3. Maven 缺省内置变量

    1.${project.build.directory} 构建目录,缺省为target 2.${project.build.outputDirectory} 构建过程输出目录,缺省为target/cl ...

  4. TCP应用程序通信协议的处理

    TCP应用程序通信协议的处理 flyfish 2015-6-29 一 流式处理 TCP是一种流协议(stream protocol).TCP数据是以字节流的形式传递给接收者的,没有固有的"报 ...

  5. Gradle学习小结

    build.gradle(依赖配置) // 普通java工程 apply plugin: 'java' // Idea工程 apply plugin: 'idea' // war工程,需要有webap ...

  6. Atitit.ioc 动态配置文件guice 设计原理

    Atitit.ioc 动态配置文件guice 设计原理 1. Bat启动时注入配置文件1 2. ioc调用1 3. Ioc 分发器 配合 apche  MethodUtils.invokeStatic ...

  7. Android IntentService全然解析 当Service遇到Handler

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47143563: 本文出自:[张鸿洋的博客] 一 概述 大家都清楚.在Andro ...

  8. vmware下为CentOS7设置静态IP

    vmware下为CentOS7设置静态IP可以分为三个主要步骤: 1. 在windows中设置VMWare创建的虚拟网络 2. 设置VMWare为静态IP 3. 设置CentOS7的网络为静态IP 首 ...

  9. 06 Memcached中的一些参数限制

    一: Memcached中的一些参数限制 Key的长度:250字节(二进制协议支持65536个字节) value的限制:1M ,一般都是存储一些文本,如新闻标题等等这个值足够了, 内存的限制:32位下 ...

  10. Warning: (3719, “‘utf8’ is currently an alias for the character set UTF8MB3, which will be replaced by UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.”)

    [1]本地版本 Mysql 8.0.12 创建表SQL: DROP TABLE IF EXISTS students; CREATE TABLE `students` ( `sId` ) UNSIGN ...