有一个口袋容积为m,有n个物品,题目的体积为a1,a2,a3…an。把m装满有多少种不同的装法。

递归:
int dfs(int n, int m)/*从n个物品中选出总体积为m的选法*/
{if(m==0)return 1;if(n<=0)return 0;return dfs(n-1, m)+(m>=a[n]?dfs(n-1, m-a[n]):0);/*可以记忆化递归*/
}递推:
dp[i][j]=dp[i-1][j]+(j>=a[i]?dp[i-1][j-a[i]]:0);初始条件:dp[i][0]=1; (0<=i<=n)/*全部不选*/
递归:(可以转化成记忆化递归)
#include<bits/stdc++.h>
using namespace std;int a[100];
int dp[100][100]={0};int main()
{int n, m;cin>>n>>m;dp[0][0]=1;for(int i=1;i<=n;i++){cin>>a[i];dp[i][0]=1;}for(int i=1;i<=n;i++){for(int j=0;j<=m;j++){dp[i][j]=dp[i-1][j]+(j>=a[i]?dp[i-1][j-a[i]]:0);}}cout<<dp[n][m]<<endl;return 0;
}递推:
#include<bits/stdc++.h>
using namespace std;int a[100];int dfs(int n, int m)
{if(m==0)return 1;if(n<=0)return 0;return dfs(n-1, m)+(m>=a[n]?dfs(n-1, m-a[n]):0);
}int main()
{int n, m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}cout<<dfs(n, m)<<endl;return 0;
}

dp专题 神奇的口袋相关推荐

  1. Bailian2759 神奇的口袋(2)【DP】

    2759:神奇的口袋(2) 总时间限制: 1000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是400,用这个口袋可以变出一些物品,这些物品的总体积必须是400.John现在有n ...

  2. Bailian2755 神奇的口袋【递归+DP】

    2755:神奇的口袋 总时间限制: 10000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得 ...

  3. 神奇的口袋(回溯DP)

    题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选 ...

  4. 九度OJ 1114:神奇的口袋 (DFS、DP)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:948 解决:554 题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个 ...

  5. 北大培训课动态规划----神奇的口袋(百练2755)

    北京大学暑期课<ACM/ICPC竞赛训练> ppt摘取 什么是动态规划? ●递归到动规的一般转化方法  递归函数有n个参数,就定义一个n维的数组,数组 的下标是递归函数参数的取值范围,数组 ...

  6. 《算法笔记》4.3小节——算法初步-递归-问题 C: 神奇的口袋(oj:Codeup墓地)

    题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选 ...

  7. 九度oj 题目1114:神奇的口袋

    题目1114:神奇的口袋 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:646 解决:387 题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须 ...

  8. 牛客KY59 神奇的口袋

    牛客KY59 神奇的口袋 题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an. ...

  9. 动态规划之神奇的口袋问题

    问题描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40 John现在有n(1<=n<=20)个想要得到的物品,每个物品的体积分别是a1,a2,- ...

最新文章

  1. alias提升效率工具
  2. Java命令学习系列(二)——Jstack
  3. Java面试题及答案,java底层实现原理
  4. 智能实验室服务器,阿里巴巴机器智能实验室线下智能团队三年工作总结
  5. js动态产生对象push进数组,发现数组所有元素(element or object)一样
  6. DevExpress学习03——label控件的背景色问题
  7. HTML实现点击时的阴影(:active)(已解决iOS微信上无法使用)
  8. win10+tensorflow-gpu+pycharm+anaconda...的成功安装,顺利在spyder import tensorflow
  9. 小记安装ElasticSearch遇到的小坑
  10. 智迈职称计算机一练通破解版,智迈初级会计职称考试软件
  11. 超链接小点html,html超链接取消鼠标点指显示小手
  12. 计算机用户名显示TEMP,win10只要打开ie桌面出现temp文件夹如何解决
  13. zend studio 12.5 安装aptana
  14. selenium 反爬虫之跳过滑块验证
  15. 关系型数据库由哪三部分组成_关系数据库| 第2部分
  16. 从0开始编写一个应用(android端+小程序端+服务器端)第二步 项目经理完成逻辑图。(下:产品细节思考后的实现逻辑图)
  17. Linux监控利器nagios–NSCA被动监控
  18. 定位服务器的功能是提供用户位置信息和什么,LBS是什么意思 LBS的现有模式和功能介绍...
  19. UE4入门学习4:C++编程介绍
  20. Elasticsearch中的date与时区问题

热门文章

  1. 激发潜能 成就梦想:抱着积极的心态开发你的潜能
  2. Parsec [error-800] Internet无法访问的解决方案
  3. 汽车配件管理系统分析报告
  4. MySQL入门:数据库是什么 | SQL是什么 | MySQL是什么
  5. 在Matlab R2019版本上分析simulink模型的BODE图、阶跃响应、单位脉冲响应
  6. 树莓派提升计划 Android应用用MiniChatAppApp之AppServer构建
  7. java中String与int/float/double/byte/数组
  8. 微信公众号用户与网站用户的绑定方案
  9. 视频监控一般都存储在哪里?如何实现云端集中存储?
  10. android XML文件注释