简单背包问题
来源:互联网 发布:淘宝价聚划算 编辑:程序博客网 时间:2024/06/03 19:20
设有一个背包可以放入的物品重量为S,现有n件物品,重量分别是w1,w2,w3,…wn。
问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S。
如果有满足条件的选择,则此背包有解,否则此背包问题无解。
Input
输入数据有多行,包括放入的物品重量为s,物品的件数n,以及每件物品的重量(输入数据均为正整数)
多组测试数据。
Output
对于每个测试实例,若满足条件则输出“YES”,若不满足则输出“NO“
Sample Input
20 5
1 3 5 7 9
Sample Output
YES
#include <stdio.h>int main(){ int i, j, volume, n, f[100001] = {0}, weight[1000]; while (EOF != scanf("%d%d", &volume, &n)) { f[0] = 1; for (i = 0; i < n; i++) scanf("%d", &weight[i]); for (i = 0; i < n; i++) { for (j = volume; j >= weight[i]; j--) { if (f[j] > f[j - weight[i]]) f[j] = f[j]; else f[j] = f[j - weight[i]]; //f[j] = f[j] > f[j - weight[i]] ? f[j] : f[j - weight[i]]; } } if (0 != f[volume]) printf("YES\n"); else printf("NO\n"); } return 0;}
0 0
- 简单背包问题
- 简单的背包问题
- 简单的背包问题
- 简单背包问题
- 简单0.1背包问题
- 简单背包问题
- 简单:01背包问题
- 简单:01背包问题
- 简单:01背包问题
- 简单背包问题!
- 简单的背包问题
- 简单背包问题模板
- 简单背包问题
- 简单背包问题<枚举>
- dfs 简单背包问题
- 简单背包问题
- 简单的背包问题
- 简单的背包问题
- 洛谷 P1613 跑路
- HDU 1423 Greatest Common Increasing Subsequence
- centos yum安装svn
- Java enum的用法详解
- Python学习01:Python简介
- 简单背包问题
- JS-获取UA
- vijos P1814细胞分裂 (数论)
- 背包九讲&01背包
- __attribute__((packed))详解
- 【POJ 2823】Sliding Window(单调队列)
- MIPS之指令集介绍
- 2016.11.11
- 数据库表设计