hdu 6170 Two strings(线性dp)
来源:互联网 发布:dota2比赛数据直播 编辑:程序博客网 时间:2024/06/06 04:59
开始想的是用字符串进行暴力匹配,也想到了dp,但是水平不够啊,写不出来状态转移方程,dp总会有规律,每个状态由前面的推出后面的,根据状态的不同,进行一些判断,总有一天我能自己写出稍微复杂的dp状态转移方程。
#include<bits/stdc++.h>using namespace std;#define pb push_backbool dp[2505][2505];char s1[2505],s2[2505];int main(){//freopen("in.txt","r",stdin);// freopen("out.txt","w",stdout); int t; scanf("%d%*c",&t); while(t--) { gets(s1+1); gets(s2+1); memset(dp,0,sizeof(dp)); int len1=strlen(s1+1); int len2=strlen(s2+1); dp[0][0]=1; for(int i=1; i<=len2; i++) { if(i==2&&s2[i]=='*')dp[i][0]=1; for(int j=1; j<=len1; j++) { if(s2[i]=='.')dp[i][j]=dp[i-1][j-1]; else if (s2[i] == '*') { dp[i][j] = max(dp[i - 2][j], dp[i - 1][j]); if (dp[i][j - 1] && s1[j] == s1[j - 1]) dp[i][j] = 1; } else { if (s2[i] == s1[j]) dp[i][j] = dp[i - 1][j - 1]; } } } if(dp[len2][len1])printf("yes\n"); else printf("no\n"); } return 0;}
阅读全文
0 0
- hdu 6170 Two strings(线性dp)
- HDU 6170 Two strings (dp)
- HDU 6170 Two strings (二维DP)
- HDU 6170 Two strings(dp)
- hdu 6170 Two strings (dp)
- HDU 6170 Two strings (DP)
- HDU 6170 Two strings(DP)
- hdu 6170 Two strings dp
- hdu 6170 Two strings(DP)
- HDU 6170(Two strings-DP)
- hdu 6170 Two strings(dp)
- HDU 6170 && 2017 多校训练:Two strings(DP)
- HDU 6170 / 多校1010 Two strings (dp)
- hdu 6170 Two strings dp模拟
- Hdu 6170 Two strings【思维+Dp】
- HDU 6170 Two strings dp || 正则
- hdu 6170 Two strings
- HDU 6170:Two strings
- 今天开始用Atom
- 【bzoj2002】[Hnoi2010]Bounce 弹飞绵羊
- 批删tp
- 2482-二叉排序树
- 在js中改变单选框选中状态
- hdu 6170 Two strings(线性dp)
- HYSBZ
- 自定义弹出框alert
- 使用Zlib对文件和目录进加密打包和解包
- 联合(union)的最详细用法
- Java
- jquery动画效果
- hdu 6168 模拟+优先队列
- springboot打包jar包找不到jsp文件以及在linux永久执行java -jar以及springboot的多环境配置