【hdoj_2111】SavingHDU
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2111
题目理解:给出一个口袋的容量,若干种宝物的单价和体积,单个的宝物可以分割,待求的是最多能装价值多少的宝物.
思路:宝物可以分割,所以如果宝物足够多的话,口袋可以装满.因此,先对所有宝物按照价格递减排序,然后从高价的宝物开始,把它们放进口袋,直到宝物装完了或者口袋装满了为止.
装的过程中会遇到两种情况:
1.某种宝物的体积小于口袋的体积,则将这种宝物全部装进口袋,更新口袋的剩余容积.
2.某种宝物的体积大于口袋的体积,则将这种宝物的一部分装进口袋是口袋装满.
C++代码如下
#include<iostream>
#include<algorithm>
using namespace std; struct Treasure//将宝物看多 结构体
{
int price;
int volume;
}; bool cmp(Treasure t1,Treasure t2)
{
return t1.price > t2.price;//用于将宝物按照价格递减顺序排序
} int main()
{
int V,n;
while(cin>>V)
{
if(V==0) break;
cin >> n;
Treasure *T = new Treasure[n];
for(int i=0;i<n;i++)
cin >> T[i].price >> T[i].volume;
sort(T,T+n,cmp);//排序
int result = 0;
for(int i=0;i<n;i++)
{
if(V==0) break;//口袋满了,退出
if(V>T[i].volume)
{
result += T[i].price * T[i].volume;
V = V - T[i].volume;//更新口袋数据
}
else
{
result += T[i].price * V;
V = 0;//更新口袋数据
}
}
cout << result << endl;
} return 0;
}
注意:上述代码提交会出现错误提示,删掉所有的注释再提交,可以通过.
【hdoj_2111】SavingHDU的更多相关文章
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【调侃】IOC前世今生
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
- Python高手之路【一】初识python
Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
随机推荐
- oracle ocp 052考试学习
1.数据字典存储在SYSTEM表空间中. 2.SYSAUX可以offline: SQL>alter tablespace sysaux offline; 3.SYSTEM和SYSAUX都是永久表 ...
- java第七笔记
- 搭建Hadoop环境(二)
摘要:近来又用到了Linux系统,所以就又新装了一个虚拟机和CentOS 6.4来用,搞开发的程序猿们可能都知道,在现在的很多企业中,生产环境大多都是Linux服务器,并且用的比较多的大都是CentO ...
- JavaScript实现键盘操作页面跳转
对于使用笔记本的同学来说,鼠标操作比较费劲,键盘操作比较方便,下面是一段JavaScript写的,用键盘来实现页面跳转.把location后面的改成你要跳转的地址即可,示例是用方向键实现日志页面的前一 ...
- PowerShell收发TCP消息包
PowerShell收发TCP消息包 https://www.cnblogs.com/fuhj02/archive/2012/10/16/2725609.html 在上篇文章中,我们在PSNet包中创 ...
- [洛谷P3937]Changing
题目大意:有 $n$ 盏灯环形排列,顺时针依次标号为 $1\cdots n$.初始时刻为 $0$ ,初始时刻第 $i$ 盏灯的亮灭 $a_i$, $0$ 表示灭, $1$ 表示亮.下一时刻每盏灯的亮灭 ...
- [NOIP2017 TG D2T3]列队
题目大意:有一个$n \times m$的方阵,第$i$行第$j$列的人的编号是$(i-1) \times m + j$. 现在有$q$个出列操作,每次让一个人出列,然后让这个人所在行向左看齐,再让最 ...
- BZOJ1305 [CQOI2009]dance跳舞 【网络流】
1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 3714 Solved: 1572 [Submit][ ...
- Jsp上传组件Smartupload介绍
<form action="UploadServlet" enctype="multipart/form-data" method="post& ...
- BZOJ_day4&&DSFZ_day1
昨天坐火车才水了三道题... 25题 100810221041105110591087108811791191119212571303143218541876195119682140224224382 ...