DP 杭电女生赛07题 Combine String
来源:互联网 发布:淘宝卖家虚拟电话 编辑:程序博客网 时间:2024/05/22 04:51
本来是打算贪心水一发,然后发现如果出现第一个和第二个序列中出现同样元素的情况的时候是会造成误判的,也可以递归的算法,但是应该会TLE。所以就用dp!dp真是个好算法dp[i][j]=(dp[i-1][j]&&a[i]==c[i+j])||(dp[i][j-1]&&b[j]==c[i+j]);是状态转移方程,
但是在i=0或者j=0的时候要特判一下防止re;
i和j意思是取第一个序列的第i个,取第二个序列的第j个
#include<bits/stdc++.h> using namespace std;char a[2005];char b[2005];char c[2005];int dp[2005][2005];int main(){ int i; while(~scanf("%s",a+1)){ scanf("%s",b+1); scanf("%s",c+1); memset(dp,0,sizeof(dp)); dp[0][0]=1; if(strlen(a+1)+strlen(b+1)!=strlen(c+1)){ printf("No\n"); continue; } for(int i=0;i<=strlen(a+1);i++){ for(int j=0;j<=strlen(b+1);j++){ if(i==0&&j==0){ continue; } if(i==0){ dp[i][j]=(dp[i][j-1]&&b[j]==c[i+j]); } else if(j==0){ dp[i][j]=(dp[i-1][j]&&a[i]==c[i+j]); } else{ dp[i][j]=(dp[i-1][j]&&a[i]==c[i+j])||(dp[i][j-1]&&b[j]==c[i+j]); } } } if(dp[strlen(a+1)][strlen(b+1)]) printf("Yes\n"); else printf("No\n"); } return 0;}
0 0
- DP 杭电女生赛07题 Combine String
- 杭电女生赛—Combine String
- 【2016杭电女生赛1006】【DP 类似LCS】Combine String 字符串c拆子串 能否恰好分成a与b
- HDU-5707-Combine String【2016CCPC女生专场】【DP】
- 2016女生赛 1006 Combine String【LCS变形】
- HDU 5707 Combine String (DP)
- HDU "巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场 Combine String
- "巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场 Combine String
- hdu 5707 Combine String dphen dp
- Combine String
- 【2016杭电女生赛1001】【C语言签到题】Solving Order
- 2017杭电女生赛总结(2017/5/11)
- 【2016杭电女生赛1010】【旅行商问题DP + 贪心】Ingress 最多走L距离 最多hackK次 的最大得分
- 【2016杭电女生赛1005】【暴力 bfs or dfs or 模拟】girlcat 数女生数和猫咪数
- hdu-5707-Combine String
- hdu 5707 Combine String
- Combine String模拟
- 2017女生赛 1002 Building Shops【dp】
- 操作系统面试题总结
- java中输入一个字符串,怎么将字母去掉
- Error Error occurred running Grails CLI: No profile found for name [web]. (Use --stacktrace to see
- linux问题汇总
- android Uid 与 Pid 的区别与用法
- DP 杭电女生赛07题 Combine String
- ptrace基于行数调试
- 在Python标准库的json包中,提供了JSONEncoder和JSONDecoder两个类来实现Json字符串和dict类型数据的互相转换。
- AXIS2发布WebService服务示例(Eclipse+AXIS)
- 操作系统面试题
- 智能指针的两种实现(引用计数)
- 数据库概念初始
- tableau server 离线加载自定义谷歌地图瓦片
- Matlab:ndgrid函数