题目描述

有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。

输入

输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。

输出

输出不同的选择物品的方式的数目。

样例输入

2
12
28
3
21
10
5

样例输出

1
0

C++代码

#include<iostream>
#include<cstring>
using namespace std;const int N = 21;
const int V = 40;
int a[N];int solution(int v, int k){if(v==0){return 1;}else if(k == 0){return 0;}else{/** 这是组合问题,与排列不同* 对于每个物品只有2种可能:选或不选 * 这就是一般通项公式* 选了,就V-a[k]继续对剩下的物品作同样操作* 不选,继续以V往后选择 * 其中物品是以数组下标来区分的,此处是递减遍历* 也可地递增遍历,但是输入的个数n就得是全局变量了* 上面k==0也要变成k==n+1* 下面k-1变成k+1 */return solution(v-a[k],k-1) + solution(v,k-1);}
}
int main(){int n;while(cin >> n){for(int i = 1; i <= n; i++){cin >> a[i];}cout << solution(V,n) << endl; }return 0;
}

codeup墓地 神奇的口袋——组合问题相关推荐

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

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

  2. Codeup墓地 Contest100000583 问题 C:神奇的口袋

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

  3. codeup墓地目录(算法笔记习题刷题笔记)

    在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...

  4. codeup墓地目录

    代码内容为原创C++ 在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门 ...

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

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

  6. 牛客网机试题-神奇的口袋

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

  7. 递归设计--八皇后+神奇的口袋+数列+吃糖果

    2019.01.26 是日晴朗,纪念下放假以来第一次9点起,最近怎么越活越回去呢,别再患得患失啦,过好当下就行哟~ 本文主要是递归设计练习的总结,包含以下内容(难度依次递减) 八皇后(N皇后):全排列 ...

  8. 牛客KY59 神奇的口袋

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

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

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

最新文章

  1. vrrp的组播地址是多少
  2. Java BigDecimal常用方法
  3. Flash正式成为Googel Chrome浏览器内置插件
  4. 【人物】徐小平:远离创业的3个死亡陷阱
  5. 美国无人驾驶立法提案将进行投票,有望解除一切封杀
  6. 关于用函数指针参数申请动态内存的问题
  7. kafka 丢弃数据_Kafka史上最详细原理总结下
  8. 一文理解设计模式--单例模式(Singleton)
  9. perl的my,our,local等用法
  10. 【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
  11. [转载]我的PMP复习备考经验谈(上篇)—— 一本关于PMP备考的小指南
  12. mbit职业测试软件,APESK瑞士荣格理论模型职业性格测试(非迫选模式比MBTI性格测试更人性化)(量表版本:V2015-3.1)...
  13. 直流电源输入防反接保护电路总结
  14. 苹果新掌门库克:两次临危受命的实干家
  15. 泛型-IMPORTANT
  16. 列车信息系统Java+MySQL(没完全实现)
  17. 微信公众号开发-(.net)
  18. 微信小程序-一个跑步app
  19. 计算机丢失dll文件怎么弄,电脑缺少DLL文件该怎么办? 这个办法轻松解决!
  20. 《帝友P2P网络借贷系统》项目研发阶段性总结

热门文章

  1. 蓝桥杯——我该如何枚举
  2. 怎样在Win 10中运行MASM汇编代码
  3. matlab用于激光光束质量分析,MATLAB用于激光光束质量分析
  4. html让图片位置固定缩放不改变为HI,CSS Sprites技术实现一张图片上很多小图片,分别定位到网页的不同位置...
  5. 我的外包经验:印度、中国和菲律宾(译文)
  6. iPhone提取图片上文字的方法
  7. Java中StringBuilder清空数据方法比较
  8. Consider revisiting the entries above or defining a bean of type 'org.springframework.data.redis……'
  9. 试图运行项目时出错,无法启动调试。没有正确安装调试器--很多次都是上网找了很多资料,都很难解决
  10. 此网址使用了一个通常用于网络浏览以外目的的端口。出于安全原因,Firefox 取消了该请求