HDOJ - 4545 魔法串 简单DP
来源:互联网 发布:淘宝最低价规则 编辑:程序博客网 时间:2024/05/22 14:32
用二维bool记录可行的对应关系..为了处理方便..预处理所有的f[i][i]=true....
dp[i]代表以b[i]为最后一个字符能匹配到a串的最大长度...
Program:
#include<iostream>#include<stdio.h>#include<cmath>#include<string.h>#include<algorithm>#include<queue>#include<stack>#define ll long long#define oo 1000007#define MAXN 1005using namespace std; char a[MAXN],b[MAXN];int dp[MAXN];bool f[26][26];int main(){ freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int T,t,i,j,m,la,lb; bool ans; char c1,c2; scanf("%d",&T); for (t=1;t<=T;t++) { scanf("%s%s%d",a+1,b+1,&m); memset(f,false,sizeof(f)); for (i=0;i<26;i++) f[i][i]=true; while (m--) { do { c1=getchar(); } while (c1<'a' || c1>'z'); do { c2=getchar(); } while (c2<'a' || c2>'z'); f[c1-'a'][c2-'a']=true; } memset(dp,0,sizeof(dp)); la=strlen(a+1); lb=strlen(b+1); ans=false; for (i=1;i<=lb;i++) for (j=0;j<i;j++) if (dp[i]<dp[j]+1 && f[b[i]-'a'][a[dp[j]+1]-'a']) { dp[i]=dp[j]+1; if (dp[i]==la) { ans=true; goto A; } } A: ; printf("Case #%d: ",t); if (ans) printf("happy\n"); else printf("unhappy\n"); } return 0;}
- HDOJ - 4545 魔法串 简单DP
- HDOJ 4545 魔法串 (简单DP)
- hdu 4545 魔法串 dp
- nyoj 魔法少女(简单dp)
- Hdu 4545 魔法串 字符串dp
- HDOJ - 4502 简单DP..
- NYOJ 1204 魔法少女 简单DP
- HDU4545 魔法串(DP)
- HDOJ - 4504 简单DP...细心...
- hdoj 1260 Tickets 【简单DP】
- HDOJ 5569 matrix(简单DP)
- hdu 4545 魔法串
- HDU 4545 魔法串
- hdu 4545 魔法串
- HDU 4545 魔法串
- HDU 4545魔法串
- hdu 4545 魔法串
- HDU-4545魔法串
- 如何用Python写一个贪吃蛇AI
- Freemarker中如何遍历List
- ubuntu 下的搞笑
- View中如何进行手势识别
- seconds_behind_master解密
- HDOJ - 4545 魔法串 简单DP
- linux中关于i2c驱动编写的注意事项
- 存储系统实现-如何删除数据
- 跟我一起写 Makefile(八)
- C/C++的64位整型
- 网络安全基础篇之<十四>
- Hibernate的检索方式(五)
- [Python] Twiested - 基于事件驱动的网络编程
- 关于UEditor在struts2下图片上传问题