Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
来源:互联网 发布:gta5pc女角色捏脸数据 编辑:程序博客网 时间:2024/06/14 09:36
http://codeforces.com/contest/476/problem/E
参考http://www.cnblogs.com/qscqesze/p/5794709.html
题意给你一个串S,和另外一个串P把k从0到|S|枚举,然后问你去掉k个字符后,s串里面最多有多少个不重叠的p字符串题解:dp,dp[i][j]表示考虑到第i个位置,去掉了j个字符的最大值然后我们对于每一个位置,先暴力找到最少去掉多少个,才能加一,然后暴力去转移这个玩意儿就好了
感悟:有点类似背包的感觉
#include<bits/stdc++.h>using namespace std;const int maxn = 2005;char s1[maxn],s2[maxn];int dp[maxn][maxn];int len1,len2;int solve(int x){ if(x<len2)return maxn; int a=x,b=len2,tmp=0; while(a&&b) { if(s1[a]==s2[b])a--,b--; else tmp++,a--; } if(b==0)return tmp; else return maxn;}int main(){ scanf("%s%s",s1+1,s2+1); len1 = strlen(s1+1); len2 = strlen(s2+1); for(int i=0;i<=len1;i++) for(int j=0;j<=len1;j++) if(j>i)dp[i][j]=-3000; for(int i=1;i<=len1;i++) { int x=solve(i); for(int k=0;k<=len1;k++) dp[i][k]=max(dp[i][k],dp[i-1][k]); for(int k=0;k<=len1;k++)if(x<=k) dp[i][k]=max(dp[i][k],dp[i-x-len2][k-x]+1); } for(int i=0;i<=len1;i++) printf("%d ",dp[len1][i]); printf("\n");}
阅读全文
0 0
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- E. Dreamoon and Strings(Codeforces Round #272)
- E. Dreamoon and Strings(Codeforces Round #272)
- Codeforces Round #272 (Div. 2) A Dreamoon and Stairs
- Codeforces Round #272 (Div. 2) B. Dreamoon and WiFi 暴力
- Codeforces Round #272 (Div. 2) A. Dreamoon and Stairs
- Codeforces Round #272 (Div. 2)B. Dreamoon and WiFi
- Codeforces 476 E. Dreamoon and Strings
- Dreamoon and Strings - CodeForces #272 (Div. 1) C dp
- Codeforces Round #129 (Div. 1)E. Little Elephant and Strings
- Codeforces Round #272 (Div. 2) B. Dreamoon and WiFi (超几何分布)
- Codeforces Round #272 (Div. 2) A Dreamoon and Stairs(水)
- Codeforces Round #272 (Div. 2) B Dreamoon and WiFi(简单DP)
- Codeforces Round #272 (Div. 2) C Dreamoon and Sums(数学)
- Codeforces Round #272 (Div. 2) D Dreamoon and Sets(构造)
- Codeforces Round #272 (Div. 2) B. Dreamoon and WiFi dp,组合数学
- Codeforces Round #106 (Div. 2) 149/E E. Martian Strings
- 算法中的时间复杂度和空间复杂度
- 集合-TreeSet
- 一个tomcat下有多个应用时 多个Context启动冲突的问题解决
- 算法提高 ADV-171 身份证号码升级
- Linux操作系统Docker安装及简单操作
- Codeforces Round #272 (Div. 2) E. Dreamoon and Strings 动态规划
- java学习笔记-什么是接口
- CorelDRAW添加标注要学会就得会这几个功能才能玩好
- yum 安装软件是出现 except OSError, e: ^ SyntaxError: invalid syntax
- 【 2017 ACM-ICPC 亚洲区(西安赛区)网络赛】 F. Trig Function
- Hibernate_映射简单集合类型和组件集合类型
- 关于位运算的算法
- 工厂模式
- ognl符号使用