hdu2546 01背包 重学背包
题意:给出菜的价钱和自己的余额。使自己余额最少,注意余额大于5的情况可以买任意的菜。
思路:小于5的余额不能买菜,直接输出,大于五的余额,留下5元买最贵的菜,剩下的余额进行01背包,将剩下的余额减去01背包消耗金额最大。就得出答案
代码:
#include<iostream>
#include<cstdio>
using namespace std;
int ZeroOnePack( int price[],int money,int n ,int pos) //01背包解法
{
int f[1024]={0};
for( int i=1; i<=n ; i++ )
{
if(i != pos)
for( int j=money ; j>=price[i]; j-- )
{
if(f[j]<f[j-price[i]]+price[i] )
f[j]=f[j-price[i]]+price[i];
}
}
return money-f[money];
} int main( )
{
int n,money,price[1024];
while( scanf( "%d",&n )==1 && n )
{
int max=0,pos;
for( int i=1; i<=n; i++)
{
scanf( "%d" ,&price[i] );
if( max<price[i] ) //记录最贵的菜的下标
{
pos=i;
max=price[i];
}
}
scanf( "%d",&money );
if( money>=5 )
printf( "%d\n",ZeroOnePack( price,money-5,n ,pos)-max+5); //需要预留5元买最贵的菜。money-5
else printf( "%d\n",money );
}
return 0;
}
hdu2546 01背包 重学背包的更多相关文章
- 背包问题(01背包,完全背包,多重背包(朴素算法&&二进制优化))
写在前面:我是一只蒟蒻~~~ 今天我们要讲讲动态规划中~~最最最最最~~~~简单~~的背包问题 1. 首先,我们先介绍一下 01背包 大家先看一下这道01背包的问题 题目 有m件物品和一个容量为 ...
- 01背包与完全背包(dp复习)
01背包和完全背包都是dp入门的经典,我的dp学的十分的水,借此更新博客的机会回顾一下 01背包:给定总容量为maxv的背包,有n件物品,第i件物品的的体积为w[i],价值为v[i],问如何选取才能是 ...
- 【BZOJ】4753: [Jsoi2016]最佳团体 01分数规划+树上背包
[题意]n个人,每个人有价值ai和代价bi和一个依赖对象ri<i,选择 i 时 ri 也必须选择(ri=0时不依赖),求选择k个人使得Σai/Σbi最大.n<=2500,ai,bi< ...
- 重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...
- 推翻自己和过往,重学自定义View
http://blog.csdn.net/lfdfhl/article/details/51671038 深入探讨Android异步精髓Handler 站在源码的肩膀上全解Scroller工作机制 A ...
- HDU2159--二维费用背包,三重背包
FATE Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 重学Java(一):与《Java编程思想》的不解之缘
说起来非常惭愧,我在 2008 年的时候就接触了 Java,但一直到现在(2018 年 10 月 10 日),基础知识依然非常薄弱.用一句话自嘲就是:十年 IT 老兵,Java 菜鸡一枚. 于是,我想 ...
- 重学hadoop技术
最近因为做了些和hadoop相关的项目(虽然主要是运维),但是这段经历让我对hadoop的实际运用有了更加深入的理解. 相比以前自学hadoop,因为没有实战场景以及良好的大数据学习氛围,现在回顾下的 ...
- Java集合类简单总结(重学)
java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...
随机推荐
- Java基础之String类
String类 字符串是不可变的,对其做的任何改变,会生成一个对象,不会改变有原有对象. ==和equals() String s1 = "good"; String s2 = & ...
- struts2增删改查---layer---iframe层
在这里写一下struts2中的简单的增删改查 struts.xml中的配置 <?xml version="1.0" encoding="UTF-8" ?& ...
- ABP+AdminLTE+Bootstrap Table权限管理系统第三节--abp分层体系及实体相关
说了这么久,还没有详细说到abp框架,abp其实基于DDD(领域驱动设计)原则的细看分层如下: 再看我们项目解决方案如下: JCmsErp.Application,应用层:进行展现层与领域层之间的协调 ...
- NYOJ--水池数目
//NYOJ--水池数目 #include<iostream> #include<cstring> }; using namespace std; void dfs(int,i ...
- C# 获取并判断操作系统版本,解决Win10、 Windows Server 2012 R2 读取失败的方案
Windows 8.1, Win10之后,通过GetVersion and GetVersionEx 方法获取WIndows操作系统版本号的功能需要添加manifest文件后才能查找到,不然的话会查找 ...
- 在实现从excel中读取数据作为接口参数遇到的问题
这个算我自己第一次使用python语言实现 一个功能 一.首先我们先要代码实现如何从excel上读取数据python实现还是比较简单的 1.我使用的是xlrd模块,我们先要安装这个包,这样我们才可以使 ...
- python3.4下django集成使用xadmin后台
环境:window7 x64.python3.4.django1.10 一.pip install xadmin安装报错 1.使用pip install xadmin命令安装可能报如下错误: 2.解决 ...
- Java入门——(1)Java编程基础
Java入门--(1)Java编程基础 第二章 Java编程基础 JAVA 代码的基本格式: 修饰符 class 类名{ 程序代码 } 2.1关键字:赋予了特殊含义的单词. 2.2标识符: ...
- UIKit View PG
View Program iOS View and Window Architecture The view draw cycle When a view first appears on the s ...
- python 导入模块 import 理解
--python 导入模块 import 理解 -----------------------------------2014/03/18 python 导入一个模块的过程要求有一个叫做“路径搜索”的 ...