codeup墓地 神奇的口袋——组合问题
题目描述
有一个神奇的口袋,总的容积是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墓地 神奇的口袋——组合问题相关推荐
- 《算法笔记》4.3小节——算法初步-递归-问题 C: 神奇的口袋(oj:Codeup墓地)
题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选 ...
- Codeup墓地 Contest100000583 问题 C:神奇的口袋
题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选 ...
- codeup墓地目录(算法笔记习题刷题笔记)
在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门模拟->简单模拟 ...
- codeup墓地目录
代码内容为原创C++ 在线codeup contest 地址:http://codeup.cn/contest.php Contest100000575 - <算法笔记>3.1小节--入门 ...
- Bailian2755 神奇的口袋【递归+DP】
2755:神奇的口袋 总时间限制: 10000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得 ...
- 牛客网机试题-神奇的口袋
题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选 ...
- 递归设计--八皇后+神奇的口袋+数列+吃糖果
2019.01.26 是日晴朗,纪念下放假以来第一次9点起,最近怎么越活越回去呢,别再患得患失啦,过好当下就行哟~ 本文主要是递归设计练习的总结,包含以下内容(难度依次递减) 八皇后(N皇后):全排列 ...
- 牛客KY59 神奇的口袋
牛客KY59 神奇的口袋 题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an. ...
- 动态规划之神奇的口袋问题
问题描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40 John现在有n(1<=n<=20)个想要得到的物品,每个物品的体积分别是a1,a2,- ...
最新文章
- vrrp的组播地址是多少
- Java BigDecimal常用方法
- Flash正式成为Googel Chrome浏览器内置插件
- 【人物】徐小平:远离创业的3个死亡陷阱
- 美国无人驾驶立法提案将进行投票,有望解除一切封杀
- 关于用函数指针参数申请动态内存的问题
- kafka 丢弃数据_Kafka史上最详细原理总结下
- 一文理解设计模式--单例模式(Singleton)
- perl的my,our,local等用法
- 【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
- [转载]我的PMP复习备考经验谈(上篇)—— 一本关于PMP备考的小指南
- mbit职业测试软件,APESK瑞士荣格理论模型职业性格测试(非迫选模式比MBTI性格测试更人性化)(量表版本:V2015-3.1)...
- 直流电源输入防反接保护电路总结
- 苹果新掌门库克:两次临危受命的实干家
- 泛型-IMPORTANT
- 列车信息系统Java+MySQL(没完全实现)
- 微信公众号开发-(.net)
- 微信小程序-一个跑步app
- 计算机丢失dll文件怎么弄,电脑缺少DLL文件该怎么办? 这个办法轻松解决!
- 《帝友P2P网络借贷系统》项目研发阶段性总结
热门文章
- 蓝桥杯——我该如何枚举
- 怎样在Win 10中运行MASM汇编代码
- matlab用于激光光束质量分析,MATLAB用于激光光束质量分析
- html让图片位置固定缩放不改变为HI,CSS Sprites技术实现一张图片上很多小图片,分别定位到网页的不同位置...
- 我的外包经验:印度、中国和菲律宾(译文)
- iPhone提取图片上文字的方法
- Java中StringBuilder清空数据方法比较
- Consider revisiting the entries above or defining a bean of type 'org.springframework.data.redis……'
- 试图运行项目时出错,无法启动调试。没有正确安装调试器--很多次都是上网找了很多资料,都很难解决
- 此网址使用了一个通常用于网络浏览以外目的的端口。出于安全原因,Firefox 取消了该请求