HDU 2546 - 饭卡
来源:互联网 发布:rc补偿网络 编辑:程序博客网 时间:2024/05/22 00:47
这题想了一下午~
没构造出来后来搜了一下,发现需要先减掉5元拿最贵的菜,再用01背包即可。。。弱爆了。
#include <stdio.h>#include <string.h>#include <math.h>#include <stdlib.h>#include <algorithm>#include <iostream>#include <set>#include <map>#include <queue>#include <stack>#include <assert.h>#include <malloc.h>typedef long long LL;using namespace std;int dp[1003][1003];int main(){ //freopen("test0.in", "r", stdin); //freopen("test0.out", "w", stdout); int n, m, v[1001]; while(scanf("%d", &n), n) { for(int i = 1; i <= n; i++) { scanf("%d", &v[i]); } scanf("%d", &m); if(m < 5) { printf("%d\n", m); continue; } sort(v+1, v+n+1); memset(dp, 0, sizeof(dp)); int ans = 0; if(m >= 5) { ans = v[n--]; m -= 5; } for(int i = 1; i <= n; i++) { for(int C = m; C >= 0; C--) { dp[C][i] = dp[C][i-1]; if(C >= v[i]) { dp[C][i] = max(dp[C][i], dp[C-v[i]][i-1]+v[i]); } } } if(ans) { printf("%d\n", m + 5 - ans - dp[m][n]); } else { printf("%d\n", m-ans-dp[m][n]); } } 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 饭卡
- 初次见对象
- 提速Magento通过修改.htaccess文件
- hdu3487 Splay
- C++中class、struct、union的区别
- BZOJ 3083 遥远的国度 树链剖分
- HDU 2546 - 饭卡
- 算法竞赛入门经典第一章习题答案
- 佛主保佑,永无BUG
- html和js图片上下居中的两种方法
- Magento模板及布局文件中引用静态块Static Block的方法
- QT的学习之路 2弹簧和按钮控件
- 1525. One Person "The Price is Right"
- 练习2
- QT中基本类型的转换