题解 | 神奇的口袋

神奇的口袋

https://www.nowcoder.com/practice/9aaea0b82623466a8b29a9f1a00b5d35

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <map>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector<int> a(n);
	vector<int> dp(41,0);
	dp[0] = 1;//容量为0时,方式为一种
	for (int i = 0; i < n; i++)cin >> a[i];
	for (int i = 0; i < n; i++) {
		for (int j = 40; j >= a[i]; j--) {
			//j代表物品的价值(容量)
			dp[j] = dp[j] + dp[j - a[i]];
		}
	}
	cout << dp[40];
}

全部评论
近似装满背包
点赞 回复 分享
发布于 03-19 17:38 江西

相关推荐

牛客28967172...:跟着卡子哥才是正道,灵茶属实不太行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务