hdu 1501 简单dp (最长公共子串的变形)
来源:互联网 发布:编程速成班 编辑:程序博客网 时间:2024/06/03 21:48
没啥好说的,就是公共子串的一种变形,状态定义基本一致,
就是dp[i][j],分别表示当前状态已经匹配到两个串各自的位置,转移时,看和最终串的匹配结果
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define MAX 507using namespace std;int t;char s[MAX] , s1[MAX] , s2[MAX];bool dp[MAX][MAX];int main ( ){ scanf ( "%d" , &t ); int c = 1; while ( t-- ) { scanf ( "%s" , s1+1 ); scanf ( "%s" , s2+1 ); scanf ( "%s" , s+1 ); int len1 = strlen ( s1+1 ); int len2 = strlen ( s2+1 ); int len = strlen ( s+1 ); memset ( dp , 0 , sizeof ( dp ) ); dp[0][0] = 1; for ( int i = 1 ; i <= len ; i++ ) for ( int j = 0 ; j <= len1 ; j++ ) { if ( j > i || i - j > len2 ) continue; if ( s1[j] == s[i] && i-j >=0 && j > 0 && dp[j-1][i-j] ) dp[j][i-j] = 1; if ( s2[i-j]==s[i] && i-j-1 >= 0 &&dp[j][i-j-1] ) dp[j][i-j] = 1; } printf ( "Data set %d: " , c++ ); if ( dp[len1][len2] ) printf ( "yes\n" ); else printf ( "no\n" ); }}
0 0
- hdu 1501 简单dp (最长公共子串的变形)
- Is Bigger Smarter?+uva+简单dp(最长公共升降子序列的变形)
- 最长上升子序列 最长公共子序列 最长公共子串 数字三角形 等简单DP以及变形
- 最长公共子串-简单的DP
- HDU 1080 Human Gene Functions--DP--(最长公共子序列变形)
- HDU 1080 最长公共子序列变形
- hdu 1238(最长公共子序列变形)
- hdu 1238(最长公共子序列变形)
- 最长公共子序列与最长公共子串以及他们的打印(dp)
- HDU 1503 最长公共子序列的变形(重点在输出)
- Hdu 1080 Human Gene Functions(最长公共子序列的变形)
- HDU 1243 反恐训练营(最长公共子序列的变形)
- HDU 1503 Advanced Fruits 由两个字符串组成一个最短新串 (最长公共子串变形)
- (hdu step 3.2.2)Common Subsequence(简单dp:求最长公共子序列的长度)
- hdu5282 最长公共子序列的变形
- DP(最长公共子串问题)
- hdu 1502 java大数+简单dp(最长公共子序列类似)
- hdu 1503 + 简单dp ( 最长公共子序列型)+记忆化搜索+stl
- Linux守护进程设计规范及python实现
- 【问题】Java web项目EL表达式失效
- linux yum命令详解
- 跑马灯。。。Framelayout
- bzoj 1050 题解
- hdu 1501 简单dp (最长公共子串的变形)
- HDU 1098 Ignatius's puzzle
- How do I fix Passenger application startup problem
- 墓地雕像
- 好记性不如烂笔头25-JAVA处理数据库事务(3) - 事务回滚点
- LINK_LIBRARIES: Targets may link only to libraries. CMake is dropping the item.
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
- bzoj 1047 题解
- iOS UI 的坑:不要 remove UITableViewCell 的 contentView