多重部分和问题
来源:互联网 发布:json数据转换成数组 编辑:程序博客网 时间:2024/05/19 14:53
有n种不同大小的数字ai,每种各mi个。判断是否可以从这些数字之中选出若干使它们的和恰好为K。
输入:
3 17
3 5 8
3 2 2
输出:
Yes
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n, k, a[1000], m[1000];int dp[1000];void solve(){ memset(dp, -1, sizeof(dp)); dp[0] = 0; for (int i = 0; i < n; i++){ for (int j = 0; j <= k; j++){ if (dp[j] >= 0){ dp[j] = m[i]; } else if (j < a[i] || dp[j - a[i]] <= 0){ dp[j] = -1; } else{ dp[j] = dp[j - a[i]] - 1; } } } if (dp[k] >= 0) printf("Yes\n"); else printf("No\n");}int main(){ while (scanf("%d%d", &n, &k) != EOF){ for (int i = 0; i < n; i++){ scanf("%d", &a[i]); } for (int i = 0; i < n; i++){ scanf("%d", &m[i]); } solve(); } return 0;}
0 0
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题
- 多重部分和问题 DP
- 多重部分和问题 dp
- [dp]多重部分和问题
- 挑战 多重部分和问题
- 多重部分和问题优化
- 多重部分和问题 dfs
- 部分和问题---多重部分和问题---动态规划
- 经典DP 多重部分和问题
- 剑指offer:平衡二叉树
- IP TCP UDP 报文格式
- 策略模式
- 中断定时器
- LB 负载均衡的层次结构
- 多重部分和问题
- 这么巧妙思路(二)Longest Ordered Subsequence
- 树莓派(2代)内核定制及调试准备
- Haproxy 配置详解
- 1265: 青年歌手大奖赛_评委会打分
- 深入Java核心 Java内存分配原理精讲
- Fresco(Facebook开源的android项目)图片缓存框架的eclipse整合与使用探索(较详细配置说明)
- sizeof()计算一个类的对象大小和sizeof(string)的问题
- jsp中文乱码问题