地址:http://acm.hdu.edu.cn/showproblem.php?pid=1501
题意:给出字符串a, b, c。判断a, b是否同时满足是c的子序列(a, b包含的字母不能重叠)
思路:DFS + 记忆化搜索。
代码:
#include <stdio.h>
#include <string.h>
int map[405][405]; // 注意数组大小
char a[201], b[201], c[405];
int len1, len2, len3, ans;
void dfs(int x, int y, int k) //三个元素同时进行搜索
{
if (map[x][y]) return; /*记忆化搜索*/
map[x][y] = 1; /*剪枝*/
if (k == len3)
ans = 1;
if (x < len1&&a......
阅读全文