POJ 1276 Cash Machine (多重背包)
来源:互联网 发布:知乎 精华回答 编辑:程序博客网 时间:2024/05/12 19:52
题目链接:(—_—) zZ
题目大意:就是有不同面值的票单D1,每种面值的票单有ni个, 现在给出一个钱数N, 要求求出这些票单能组成的最大面值(小于或等于钱数).
思路:多重背包
code:
#include <stdio.h>#include <string.h>int N[12], D[12], dp[100010], num[100010];int main(){ int i = 0, j = 0, n = 0, cash = 0, ans = 0; while(scanf("%d", &cash) != EOF) { scanf("%d", &n); for(i = 0; i<n; i++) scanf("%d %d", &N[i], &D[i]); memset(dp, 0, sizeof(dp[0])*(cash+2)); for(i = 0; i<n; i++) { memset(num, 0, sizeof(num[0])*(cash+2)); for(j = D[i]; j<=cash; j++) { if(dp[j]<dp[j-D[i]]+D[i] && num[j-D[i]]<N[i]) { dp[j] = dp[j-D[i]]+D[i]; num[j] = num[j-D[i]]+1; } } } for(i = cash; i>=0; i--) if(i == dp[i]) { ans = i; break; } printf("%d\n", ans); } return 0;}
- POJ 1276 Cash Machine (多重背包)
- POJ 1276 Cash Machine (多重背包)
- 【POJ】1276 Cash Machine(多重背包)
- poj 1276 Cash Machine(多重背包)
- poj 1276 Cash Machine(多重背包)
- POJ - 1276 Cash Machine(多重背包)
- POJ 1276 - Cash Machine(多重背包)
- POJ 1276 Cash Machine(多重背包)
- POJ 1276 Cash Machine(多重背包)
- POJ 1276 Cash Machine (多重背包)
- POJ-1276-Cash Machine(多重背包)
- POJ 1276 Cash Machine(多重背包)
- Cash Machine poj 1276(多重背包)
- poj 1276 Cash Machine (多重背包)
- POJ 1276 Cash Machine (多重背包)
- POJ 1276 Cash Machine(多重背包)
- POJ 1276:Cash Machine (多重背包)
- POJ 1276 Cash Machine(多重背包)
- [转帖]怎样做研究(刘挺)
- Struts2之Action
- J2EE SDK 安装指南
- Android学习笔记(6)---关于Service+MediaPlayer的使用
- ScrollBars V2整理
- POJ 1276 Cash Machine (多重背包)
- 古希腊神话故事:赫克犹巴
- C#属性
- C语言打印水仙花数
- STRATA智能手表: 释放你的双手
- 汇编字符串处理指令 一
- c# .Net 根据资源文件名获取资源文件对象
- mmorpg game source
- C# 防止源码遭破解