http://acm.hdu.edu.cn/showproblem.php?pid=1501

搜了下记忆化搜索是嘛 然后就看到这个题了 不过一不小心看到代码了 代码又那么短 一不小心给记住了 然后看了题也没怎么想

这个题比较简单把 也没看出哪里记忆化了 感觉扫了一遍 因为s是s1和s2的和 所以对于s里面的字符要么是s1里的要么是s2里的 若都有 分两种情况去搜

  1. #include <iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<stdlib.h>
  5. #include<algorithm>
  6. using namespace std;
  7. char s1[],s2[],s[];
  8. int a[][],k1,k2;
  9. int dp(int i,int j,int k)
  10. {
  11. if(a[i][j]!=-)
  12. return a[i][j];
  13. if(k>=(k1+k2))
  14. return ;
  15. if(i<k1&&j<k2&&s1[i]==s[k]&&s2[j]==s[k])
  16. return a[i][j] = dp(i+,j,k+)+dp(i,j+,k+);
  17. else if(i<k1&&s1[i]==s[k])
  18. return a[i][j] = dp(i+,j,k+);
  19. else if(j<k2&&s2[j]==s[k])
  20. return a[i][j] = dp(i,j+,k+);
  21. else return ;
  22. }
  23. int main()
  24. {
  25. int i,j,t,kk=;
  26. cin>>t;
  27. while(t--)
  28. {
  29. kk++;
  30. memset(a,-,sizeof(a));
  31. scanf("%s%s%s",s1,s2,s);
  32. k1 = strlen(s1);
  33. k2 = strlen(s2);
  34. printf("Data set %d: ",kk);
  35. if(dp(,,))
  36. printf("yes\n");
  37. else
  38. printf("no\n");
  39. }
  40. return ;
  41. }

hdu1501Zipper(记忆化搜索)的更多相关文章

  1. [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索

    1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...

  2. 【BZOJ-3895】取石子 记忆化搜索 + 博弈

    3895: 取石子 Time Limit: 1 Sec  Memory Limit: 512 MBSubmit: 263  Solved: 127[Submit][Status][Discuss] D ...

  3. hdu3555 Bomb (记忆化搜索 数位DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  4. zoj 3644(dp + 记忆化搜索)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...

  5. loj 1044(dp+记忆化搜索)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...

  6. DP(记忆化搜索) + AC自动机 LA 4126 Password Suspects

    题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 ...

  7. HDU1978 记忆化搜索

    How many ways Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  8. bzoj4562: [Haoi2016]食物链--记忆化搜索

    这道题其实比较水,半个小时AC= =对于我这样的渣渣来说真是极大的鼓舞 题目大意:给出一个有向图,求入度为0的点到出度为0的点一共有多少条路 从入读为零的点进行记忆化搜索,搜到出度为零的点返回1 所有 ...

  9. 数位dp/记忆化搜索

    一.引例 #1033 : 交错和 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个数 x,设它十进制展从高位到低位上的数位依次是 a0, a1, ..., an  ...

随机推荐

  1. UITableViewCell左滑的时候添加多个按钮的方法(iOS8+)以及UIRefreshControl(iOS6+)的使用。

    之前想在cell左滑的时候添加更多的按钮而不是只有‘删除’按钮如下所示,貌似不是一件简单的事.但是现在只要实现几个方法就行了. 代码写的比较垃圾,重在理解这个知识.. . 具体代码: // //  T ...

  2. OC4_可变数组

    // // main.m // OC4_可变数组 // // Created by zhangxueming on 15/6/11. // Copyright (c) 2015年 zhangxuemi ...

  3. 06链队列_LinkQueue--(栈与队列)

    #include "stdio.h" #include "stdlib.h" #include "io.h" #include " ...

  4. 利用css3动画和border来实现圆形进度条

    最近在学习前端的一些知识,发现border的功能十分强大啊! 首先来看看demo 就是这么一个圆形的进度条,在文本框中输入0-100的数值下面的进度条相应的转到多少 这个主要是利用border,旋转和 ...

  5. Android基础之Activity

    一.什么是Activity Activity是Android四大组件之一,并且Activity是组件中的重中之重. Activity是为用户提供一个用于信息交互的窗口. 二.如何去创建Activity ...

  6. QML鼠标事件实现变色矩形

    QML支持鼠标事件处理,我们可以利用这个来实现一个变色矩形示例,代码如下: import QtQuick 2.4 import QtQuick.Controls 1.3 import QtQuick. ...

  7. C# winform关于DataGridView的一些操作

    设置字段名 设置字段值 设定单元格表示 Error图标 设定当前单元格 取得当前单元格内容 取得当前单元格的列 Index 取得当前单元格的行 Index 向下一行 向上一行 取消 DataGridV ...

  8. [HTML]img标签属性

    <img src="image.png" width="" height="" align="absmiddle" ...

  9. live 写博

    1           2           3           4           5         1       2       3       4       5         ...

  10. 【10】了解Bootstrap栅格系统基础案例(5)

    这次我们来说下列排序: 通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序. <!DOCTYPE html> <h ...