HDU-2546-饭卡
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=2546
这题是我的0-1背包开山第一题 对于0-1背包还不是很理解:
0-1背包的一帮形式
int dp[MAX_W+1]//DP数组
void solve()
{
for(int i=0;i<n;i++)
{
for(int j=w;j>=w[i];j--)
{
dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
}
}
printf("%d\n",dp[w]);
}
对于0-1背包我的理解,其实0-1背包就是递归的变化;
对于这个题目就是0-1背包 但是要有一点小小的变换 就是 要想 使卡里的钱最少 我先预留5 元 到最后去买最贵的菜,用m-5 进行0-1背包
代码
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int main(void)
{
int i,j,k,n,m;
int price[1010];
int dp[1010];
while(scanf("%d",&n)==1&&n)
{
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++)
scanf("%d",price+i);
scanf("%d",&m);
if(m<5)
{
printf("%d\n",m);
continue;
}
m=m-5;
sort(price+1,price+n+1);
int Max=price[n];
for(i=1;i<n;i++)
{
for(j=m;j>=price[i];j--)
{
dp[j]=max(dp[j],dp[j-price[i]]+price[i]);
}
}
printf("%d\n",m+5-dp[m]-Max);
}
return 0;
}
这是一个很好的0-1背包题
转载于:https://www.cnblogs.com/liudehao/p/4093609.html
HDU-2546-饭卡相关推荐
- HDU 2546 饭卡(01背包裸题)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2546 饭卡 01背包变形
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hdu 2546 饭卡【贪心+01背包基础题】
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2546 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- hdu 2546 饭卡(P01-背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2546 转载请注明出处:http://blog.csdn.net/u012860063 饭卡 Time ...
- HDU 2546 饭卡(贪心+DP)
题目链接 几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为 ...
- HDU——2546 饭卡
Problem Description 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负) ...
- hdu 2546 饭卡——一道简单的 01背包
今天讲的是动态规划,学长们拉了13道题让我们做一下,一下午大概4小时,做了5道题(还是太弱了 摊手) 题意: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上 ...
- Hdu 2546 饭卡
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- hdu 2546 饭卡【01背包】
题目链接:https://vjudge.net/contest/103424#problem/C 饭卡 Time Limit: 5000/ ...
- hdu 2546 饭卡(01背包)
题意:只要最后留下的钱够5元,就可以买下最贵的食物,使得余额最低,其他的钱的使用就是一个最大背包问题了. 代码: #include<iostream> #include<cstrin ...
最新文章
- R包dplyr进行数据清洗和整理
- 农行计算机安全制度,制度体系之农行 数据中心计算机安全检查实施细则.doc
- mac golang grpc proto pb文件生成go文件.md
- 如何清除Windows共享登录的用户名密码记录
- 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版
- Kernel中如何操作CPU及外设寄存器
- 进程间内存共享问题[转]
- 面试题:MySQL的innodb和myisam
- 深度学习(四十)caffe使用点滴记录
- 《移山之道-VSTS软件开发指南》---读书笔记
- 给定一个整数序列,求中位数
- 如何处理苹果Mac冻结和无响应的应用程序?
- 关于semantic-ui的cdn失效问题(怎样通过本地引用semantic-ui)
- 05《基于深度卷积神经网络的车型识别研究》学习总结
- mysql统计分组求和
- java企业通用模块_[模板风格]WordPress企业主题Start通用响应式强大模块化wordpress-无...
- Spring Boot 事务详解
- 迪杰斯算法c语言,欧博体育APP-欧博体育APP
- 限期4个月:苹果严控版号,开发者将如何自救?
- python机器学习实践和kaggle实践