HDU 1501 Zipper
2014-02-18 16:07
302 查看
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1501
题意:给出字符串a, b, c。判断a, b是否同时满足是c的子序列(a, b包含的字母不能重叠)
思路:DFS + 记忆化搜索。
代码:
题意:给出字符串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[x] == c[k]) dfs(x + 1, y, k + 1); if (y < len2&&b[y] == c[k]) dfs(x, y + 1, k + 1); } int main() { int t, D; scanf("%d", &t); while (t--) { scanf("%s%s%s", &a, &b, &c); len1 = strlen(a); len2 = strlen(b); len3 = strlen(c); memset(map, 0, sizeof(map)); ans = 0; dfs(0, 0, 0); printf("Data set %d: ", D++); if (ans) puts("yes"); else puts("no"); } return 0; }
相关文章推荐
- hdu 1501 Zipper dp
- HDU 1501 Zipper
- hdu1501 zipper【记忆化搜索】【动态规划】
- Hdu 1501 Zipper【dfs】
- HDU 1501 Zipper (DFS)
- hdu 1501 Zipper(DFS)
- HDU 1501 & POJ 2192 Zipper(dp记忆化搜索)
- HDU-1501 Zipper DFS+记忆化搜索
- Zipper - HDU 1501 dp
- hdu 1501 Zipper
- HDU--杭电--1501--Zipper--深搜、DP都好
- HDU 1501 Zipper(DP,DFS)
- hdu 1501 Zipper
- hdu 1501 Zipper
- HDU:1501 Zipper(DFS+剪枝)
- (step4.3.5)hdu 1501(Zipper——DFS)
- hdu 1501 Zipper 拉链
- HDU 1501 Zipper(DFS)
- hdu 1501 Zipper
- HDU 1501 Zipper(dfs)