codeforce 810B Summer sell-off (贪心 排序)
题意:
商店准备用n天售货(每天的货物都是一样的),第i天会卖ki件货物,并且会有li个顾客来买。
如果货物没卖完, 那么每个顾客一定会买一件。 如果货物有剩, 不会保存到第二天。
现在给定一个f, 说明f天商店会双倍进货, 求哪几天选为f天商店售货最多。

第一个用例选第二第四天加倍, 第二个用例选第三天加倍。
分析:
一开始想了一个错误的贪心,以为只要求出min(货物*2,顾客)的值, 然后根据这个值来排序, 前f个取min(货物*2,顾客),后面的取min(货物,顾客)就能得出正确答案。
但考虑一个问题:
如果顾客<=商品数目, 那么将货物加倍,其实跟原来能卖的是一样的(都是=顾客数目),等同于浪费了一个加倍机会, 所以不如把这个加倍的机会留给 顾客 > 商品 的天数。
所以要先求出每一天加倍和不加倍的差值, 然后根据这个差值排序, 前f天加上这个差值, 后面的取min(货物,顾客),就能得出正确答案。
#include<bits/stdc++.h>
using namespace std;
struct B
{
long long goods;
long long cus;
long long can_earn;
};
B day[];
bool cmp(const B& x, const B &y)
{
return x.can_earn > y.can_earn;
}
int main()
{
int n, f;
scanf("%d %d", &n, &f);
long long ans = ;
for(int i = ; i < n; i++)
{
scanf("%lld %lld", &day[i].goods, &day[i].cus);
day[i].can_earn = min(day[i].goods*,day[i].cus) - min(day[i].goods,day[i].cus); }
sort(day,day+n,cmp); for(int i = ; i < n; i++)
{
if(f)
{
f--;
ans += day[i].can_earn;
}
ans += min(day[i].goods,day[i].cus);
}
printf("%lld\n", ans);
}
codeforce 810B Summer sell-off (贪心 排序)的更多相关文章
- HDU 4442 Physical Examination(关于贪心排序)
这个题目用贪心来做,关键是怎么贪心最小,那就是排序的问题了. 加入给定两个数a1, b1, a2, b2.那么如果先选1再选2的话,总的耗费就是a1 + a1 * b2 + a2; 如果先选2再选1, ...
- LeetCode--Best Time to Buy and Sell Stock (贪心策略 or 动态规划)
Best Time to Buy and Sell Stock Total Accepted: 14044 Total Submissions: 45572My Submissions Say you ...
- 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- POJ--1328 Radar Installation(贪心 排序)
题目:Radar Installation 对于x轴上方的每个建筑 可以计算出x轴上一段区间可以包含这个点 所以就转化成 有多少个区间可以涵盖这所有的点 排序之后贪心一下就ok 用cin 好像一直t看 ...
- hdu 4442 Physical Examination 贪心排序
Physical Examination Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- UVA 10026 Shoemaker's Problem 鞋匠的难题 贪心+排序
题意:鞋匠一口气接到了不少生意,但是做鞋需要时间,鞋匠只能一双一双地做,根据协议每笔生意如果拖延了要罚钱. 给出每笔生意需要的天数和每天的罚钱数,求出最小罚钱的排列顺序. 只要按罚款/天数去从大到小排 ...
- HDU 6034 Balala Power!(贪心+排序)
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- ACM学习历程—FZU 2144 Shooting Game(计算几何 && 贪心 && 排序)
Description Fat brother and Maze are playing a kind of special (hentai) game in the playground. (May ...
- CodeForces - 556D Case of Fugitive (贪心+排序)
Andrewid the Android is a galaxy-famous detective. He is now chasing a criminal hiding on the planet ...
随机推荐
- 关于数学函数中的abs——————————————杭电2057——————————————————————————
数学函数中的abs当你用abs之后括号之中的数字就转换成了int格式.可能会丢失一些数据造成误差而且还会有, 警告: #include<stdio.h> #include<ma ...
- linux 前台后台程序切换命令总结
1.在Linux终端运行命令的时候,在命令末尾加上 & 符号,就可以让程序在后台运行 root@Ubuntu$ ./tcpserv01 & 2.如果程序正在前台运行,可以使用 Ctrl ...
- http缓存之lastModified和etag
1.cache-control 访问资源 首次访问页面时间:2018.2.1 9:56 (当前时间=GMT时间+8h) 缓存时长max-age:1 day Expire缓存失效时间:2018.2. ...
- Windows 7下如何在Cygwin下正确安装Tcpreplay(图文详解)
可以在大家安装的Cygwin的安装目录下执行(我的这里是D:\SoftWare\cygwin) #winpcap的安装过程:|$ unzip WpdPack_4_1_2.zip|$ cp -r Wpd ...
- dockerfile构建的镜像
转载请注明出处 https://www.cnblogs.com/majianming/p/9536975.html 在每执行一个命令时,便会commit形成一个层,最后形成堆栈式的结构.最后的镜像是各 ...
- DEV—【GridControl主从表】
先附上效果图,不是想要这个效果的朋友就不用可以继续寻找了. DEV—GridControl制作主从表: (注:此例没有用到数据库,只是单纯的在内存中操作数据.) 写这一笔,是为了能更好的理解主从表,的 ...
- IIS 的最大并发数
为了探寻IIS的最大并发数,先要做几个假设. 1.假设最大并发数就是当前的连接数.意思是当前能承受最大的连接,那么就表明最大的并发.2.假设IIS应用程序池处于默认状态,更改设置将会对最大连接数产生影 ...
- AJPFX关于static总结
static 总结 static Fields static Methods static member class static initializer-- ...
- Solr和Spring Data Solr
一.Solr概述与安装 1.Solr简介 Solr是一个开源搜索平台,用于构建搜索应用程序. 它建立在Lucene(全文搜索引擎)之上. Solr是企业级的,快速的和高度可扩展的.Solr可以和Had ...
- 读取Java文件到byte数组的三种方式
package zs; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io ...