题意:

 深度优先搜索:

int dfs(index,cnt)表示选到第index个花,且当前一共选了cnt个

结果为dfs(1,0)

index>n+1 return 0

cnt==m      return 1

cnt>m        return 0

注意选到最后一个时,结束在n+1的位置,所以当index>n+1时返回,而不是在>n时返回

int res=0;
    for(int i=0;i<=a[index];i++){
        res=(res+dfs(index+1,cnt+i))%1000007;
    }

代码:、

#include<iostream>
#include<cstring>
using namespace std;
int n,m;
int a[101];int dp[101][101];
int dfs(int index,int cnt){if(index>n+1)return 0;if(cnt==m){return 1;}if(cnt>m){return 0;}if(dp[index][cnt]){return dp[index][cnt];}int res=0;for(int i=0;i<=a[index];i++){res=(res+dfs(index+1,cnt+i))%1000007;}dp[index][cnt]=res;return res;
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}cout<<dfs(1,0);} 

【深度优先搜索】记忆化搜索 P1077 摆花相关推荐

  1. 动态规划+深度优先搜索+记忆化搜索(干货满满)

    动态规划的定义 动态规划算法与分治法的思想类似,都是通过组合子问题的解来求原问题.我先来给大家介绍一下分治思想,分治思想就是把一个复杂的问题,分解为k个规模相同的子问题,如果还是无法解决,子问题又可以 ...

  2. 【蓝桥杯真题】地宫取宝(搜索-记忆化搜索详解)

    链接 [蓝桥杯][2014年第五届真题]地宫取宝 题目描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被 ...

  3. 常用的递归算法:dfs(深度优先搜索),记忆化搜索,分治

    递归值函数调用自身: 一.DFS的介绍 概念很简单,但是还是得了解一下,下面介绍的内容是重点 1. 图的DFS (1)先看一下vector是怎么建图的? vector<int> vecMa ...

  4. ZOJ - 2972 Hurdles of 110m(记忆化搜索/动态规划)

    题目链接:点击查看 题目大意:给定n个点,以及m的最大体力值,共有三个状态通过每个点 快速模式:消耗时间t1,消耗体力f1 匀速模式:消耗时间t2 慢速模式:消耗时间t3,恢复体力f2 问:通过n个点 ...

  5. 山东省第五届省赛题C Colorful Cupcakes(五维数组+记忆化搜索)

    在写题目之前先来介绍一下记忆化搜索. 算法上依然是搜索的流程,但是搜索到的一些解用动态规划那种思想和模式保存.一般来说,动态规划总要遍历所有的状态,而搜索可以排除一些无效的状态.最最最最最主要的是,搜 ...

  6. 记忆化搜索 Memorization Search

    记忆化搜索 Memorization Search 什么是记忆化搜索 记忆化搜索函数的三个特点 记忆化搜索 vs 动态规划 三种适用于DP的场景 三种不适用于DP的场景 Examples: Leetc ...

  7. lcDFS1 深度优先遍历1[记忆化搜索]

    1 深度优先遍历 最常见的优化: 1 记忆化搜索: 使用hash记录遍历起点对应的值,然后直接从hash中获得,避免重复计算 2 常见算法: 对于欧拉图和半欧拉图算欧拉路径:hierholzer算法 ...

  8. HDU2089 不要62【数位DP+记忆化搜索】

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  9. 搜索问题之状态空间搜索(状态压缩+记忆化搜索+ BFS)

    文章目录 1. 前言 2. 问题举例(九宫格问题) 3. 问题分析 3.1 状态编码与解码 3.2 哈希映射 3.3 集合判重 4. 问题实现 推荐阅读 1. 前言 之前介绍的回溯法常用于 解空间的搜 ...

  10. 洛谷P1057 传球游戏(记忆化搜索)

    点我进入题目 题目大意:n个小孩围一圈传球,每个人可以给左边的人或右边的人传球,1号小孩开始,一共传m次,请问有多少种可能的路径使球回到1号小孩. 输入输出:输入n,m,输出路径的数量. 数据范围:4 ...

最新文章

  1. 19 个行业观点:李开复谈20年后 AI,崔宝秋论开源之道,清华唐杰提认知图谱三要素...
  2. Text-CNN-文本分类-keras
  3. 一 在应用中升级u-boot、内核以及文件系统
  4. 关于合成的拷贝控制成员的一点问题
  5. 【CodeForces - 151D】Quantity of Strings (字符串问题,思维推导,有坑)
  6. mysql 主从复制结构配置
  7. 添加rabbitmq守护进程
  8. mysql 5.7.16安装与给远程连接权限
  9. hdoj--5621--KK's Point(简单数学)
  10. Qt 地址薄 (一) 界面设计
  11. C# 泛型LIST转DataTable
  12. java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo
  13. SQL注入—MYSQL基础语句(持续更新)附图
  14. 基于UDP协议的Java聊天室
  15. 银联权益信息API接口及管理平台解决方案相关介绍
  16. 工作中,掌握这四个说话技巧,再也不用担心自己不会说话
  17. python常用的案例
  18. 【科学的尽头是神学】祖师爷坐镇
  19. Cesium 源码分析 Material
  20. 各类测试工程师的面试秘籍

热门文章

  1. 纯CSS3实现lightbox+图像轮播
  2. .net Remoting(1)——起点,从示例做起
  3. TYUT-A2专题题解
  4. CCF201509-1 数列分段(100分)【序列处理】
  5. UVA763 LA5339 Fibinary Numbers【大数】
  6. UVA12555 Baby Me【水题】
  7. 趣味程序之数学之美系列
  8. utilities(C++)——单例(Singleton)
  9. 怎样学好python编程-怎样学习python编程?
  10. python怎么读取excel-Python|读、写Excel文件(三种模块三种方式)