神奇的口袋--刚好装满背包的方法总数

news/2024/10/18 9:22:30/

描述

题目描述
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。
输入描述:
输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目。接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值。
输出描述:
输出不同的选择物品的方式的数目。
示例1

输入
3
20
20
20
输出
3

分析

实际就是求刚好装满背包时的方法总数
递推公式为:
f[i,v] = f[i-1,v] + f[i,v-Ci]分别表示选了和未选第i件的方法数,可以看到,跟单纯的背包最大的地推公式非常像
初始化为0
只有f[0]=1

代码

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long ans[41];
int weight[21];
int main()
{int n;while(cin>>n){for(int i = 0;i<=40;i++)ans[i] = 0;ans[0] = 1;int w;for(int i = 1;i<=n;i++){cin>>w;for(int v = 40;v>=w;v--){ans[v] +=ans[v-w];}}cout<<ans[40]<<"\n";}
}

http://www.ppmy.cn/news/798572.html

相关文章

白天做安全,晚上去挖洞

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01; 编译&#xff1a;奇安信代码卫士团队 今天带来的是Kaung Htete Aung (ris) 和 Samuel Eng (samengmg) 的故事。他们来自新加坡&#xff0c;白天在顶级技术公司当全职安全工程师&#xff0c;业余时候在挖洞。数百名白…

昆虫洞

昆虫洞 Problem Description 当农场主John在开垦他的农场时&#xff0c;发现了许多奇怪的昆虫洞。这些昆虫洞是单向的&#xff0c;并且可以从入口到出口&#xff0c;并且使得时间倒退一段。John的每个农场包含N(1≤N≤500)块地&#xff0c;编号从1~N&#xff0c;这N快地之间有M…

快速挖掘设备逻辑洞方法分享

转载&#xff1a;https://www.cnblogs.com/pwnfeifei/p/17369551.html 前言 接触iot也快有一年的时间了&#xff0c;一年来也挖掘了大大小小几十个洞&#xff0c;虽然能有些产出但是却逐渐对人工审计感到无趣和疲惫。在此之间我也尝试过通过使用污点分析&#xff0c;fuzz等方…

那年那日那些洞

前言 此文库主要是记录一年来一些有趣的漏洞&#xff0c;拿出来给大家分享一下&#xff0c;仅供学习参考&#xff0c;禁止对任何未授权的网站进行实操。 此系列会持续更新~~~也欢迎大家投稿&#xff01;&#xff01; 1.命令执行 不说废话直接上图&#xff0c;这是一个iot的…

【社会实践】红旗渠:青年洞

“闪闪红星“社会实践团队活动简报——2019年11月10日 第二天&#xff0c;河南工业大学闪闪红星社会实践团队来到了红旗渠总干渠主要工程之一的青年洞。下车后&#xff0c;首先映入眼帘的就是青年洞主入口标志性建筑红飘带——廊桥。廊桥的整体形态犹如山间舞动的红飘带&#x…

Unity Shader 简单地挖一个洞

11月就要过去了&#xff0c;2020年已经走到尾声。从月中开始就苦苦思考有什么值得写的东西&#xff0c;结果发现这个月没有写什么太值得深纠的东西&#xff0c;就一直拖到了现在。 效果描述 其大致效果是在地上挖一个洞&#xff0c;然后有东西从洞里面升起来&#xff0c;具体…

文件洞的处理

存储引擎经常要面对的一个问题&#xff0c;就是洞的处理。一些思路&#xff1a; 1&#xff09;如果可以&#xff0c;重用现有空间&#xff0c;而不是增加文件大小&#xff0c;比如在hash store中&#xff0c;新value比旧value的长度小&#xff0c; 2&#xff09;使用Segment …