dfs之记忆化搜索(字符串匹配,位置相对变)
Posted 请叫我凯凯大人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dfs之记忆化搜索(字符串匹配,位置相对变)相关的知识,希望对你有一定的参考价值。
题目链接:http://acm.hdu.ed
#include<iostream> #include<string.h> #include<stdio.h> using namespace std; char a[210],b[210],c[500]; int mark[210][210]; int n; int dfs(int i,int j,int k) { if(mark[i][j]) return mark[i][j];//能够匹配 if(c[k]==‘\0‘) return 1; mark[i][j]=2;//能够匹配但不存在 if(a[i]==c[k]) mark[i][j]=dfs(i+1,j,k+1); if(b[j]==c[k]&&mark[i][j]!=1) mark[i][j]=dfs(i,j+1,k+1); return mark[i][j]; } int main() { scanf("%d",&n); int tag=0; while(n--) { memset(mark,0,sizeof(mark)); scanf("%s%s%s",a,b,c); int ans=dfs(0,0,0); if(ans==1) printf("Data set %d: yes\n",++tag); else printf("Data set %d: no\n",++tag); } return 0; }
2016-03-2611:54:07
u.cn/showproblem.php?pid=1501
以上是关于dfs之记忆化搜索(字符串匹配,位置相对变)的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode之深度优先搜索(DFS)专题-DFS+记忆化 329. 矩阵中的最长递增路径(Longest Increasing Path in a Matrix)
动态规划的引入 P1434 [SHOI2002]滑雪DFS+记忆化搜索
Codeforces 374 C. Travelling Salesman and Special Numbers (dfs记忆化搜索)