HDU - 2546 饭卡
来源:互联网 发布:三国战记电脑mac版 编辑:程序博客网 时间:2024/04/27 15:41
解题思路:01背包问题,首先拿出5元买最贵的东西,那接下来就是背包容量m-5,物品数量n-1 的01背包问题了。
状态转移方程为:f[j]=max(f[j],f[j-price[i]]+price[i]) , f[j]表示买前i件物品,预算为j时的最大花销
为了好弄,我把最贵的移到数组尾部。
#include <cstdio>#include <algorithm>using namespace std;int main() { int n, m; while (scanf("%d", &n) && n) { int A[1010], DP[1010] = {0}; for (int i = 0; i < n; i++) scanf("%d", &A[i]); scanf("%d", &m); sort(A, A + n); for (int i = 0; i < n-1; i++) for (int j = m - 5; j >= A[i]; j--) DP[j] = max(DP[j], DP[j-A[i]] + A[i]); printf("%d\n", m < 5 ? m : m - DP[m-5] - A[n-1]); } return 0;}
0 0
- HDU 2546 饭卡
- HDU 2546 饭卡
- HDU 2546 饭卡
- hdu 2546 饭卡
- hdu 2546 饭卡
- hdu 2546 饭卡
- hdu 2546 饭卡(背包)
- Hdu 2546 饭卡
- HDU 2546 饭卡
- HDU 2546 饭卡 DP
- hdu 2546 饭卡
- HDU 2546 饭卡
- HDU 2546 饭卡
- HDU-2546-饭卡
- hdu 2546 饭卡
- hdu 2546 饭卡
- 饭卡 hdu 2546
- hdu 2546 饭卡
- 复杂网络 有关节点
- hdu 1074 Doing Homework 压缩dp
- 前序遍历+中序遍历生成二叉树
- Hadoop,HBase,Storm,Spark到底是什么?
- 空合运算符 ??(Nil Coalescing Operator)
- HDU - 2546 饭卡
- android数据恢复
- 素数判断算法(高效率)
- 排序算法思想及代码
- Gulp安装及使用
- 优化Myeclipse8.5
- HDOJ 5416 CRB and Tree DFS
- INSTALL_FAILED_OLDER_SDK
- 版本控制技巧转载链接汇总