题意:

商店准备用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 (贪心 排序)的更多相关文章

  1. HDU 4442 Physical Examination(关于贪心排序)

    这个题目用贪心来做,关键是怎么贪心最小,那就是排序的问题了. 加入给定两个数a1, b1, a2, b2.那么如果先选1再选2的话,总的耗费就是a1 + a1 * b2 + a2; 如果先选2再选1, ...

  2. 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 ...

  3. 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 ...

  4. POJ--1328 Radar Installation(贪心 排序)

    题目:Radar Installation 对于x轴上方的每个建筑 可以计算出x轴上一段区间可以包含这个点 所以就转化成 有多少个区间可以涵盖这所有的点 排序之后贪心一下就ok 用cin 好像一直t看 ...

  5. hdu 4442 Physical Examination 贪心排序

    Physical Examination Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...

  6. UVA 10026 Shoemaker's Problem 鞋匠的难题 贪心+排序

    题意:鞋匠一口气接到了不少生意,但是做鞋需要时间,鞋匠只能一双一双地做,根据协议每笔生意如果拖延了要罚钱. 给出每笔生意需要的天数和每天的罚钱数,求出最小罚钱的排列顺序. 只要按罚款/天数去从大到小排 ...

  7. HDU 6034 Balala Power!(贪心+排序)

    Balala Power! Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  8. ACM学习历程—FZU 2144 Shooting Game(计算几何 && 贪心 && 排序)

    Description Fat brother and Maze are playing a kind of special (hentai) game in the playground. (May ...

  9. CodeForces - 556D Case of Fugitive (贪心+排序)

    Andrewid the Android is a galaxy-famous detective. He is now chasing a criminal hiding on the planet ...

随机推荐

  1. play framework

    Compilation errorThe file {module:docviewer}/app/controllers/PlayDocumentation.java could not be com ...

  2. [Usaco2005 Nov]Asteroids

    Description Bessie wants to navigate her spaceship through a dangerous asteroid field in the shape o ...

  3. String的用法——获取功能

    package cn.itcast_04; /* String类获取功能 int length():获取字符的长度 char charAt(int index):获取指定索引位置的字符 int ind ...

  4. hihocoder offer收割编程练习赛12 B 一面砖墙

    思路: 就是求哪个长度出现的次数最多. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...

  5. WP7 开发资料

    前言 离Windows Phone 7正式发布已过去几个月了,但国内关于Windows Phone 7的中文书籍资料太少了,大多数是英文资料,一本真正的中文开发教程书都没有, 要啃英文资料对大部分的开 ...

  6. iOS Programming State Restoration 状态存储

    iOS Programming State Restoration 状态存储 If iOS ever needs more memory and your application is in the ...

  7. 1.了解Objective-C语言

    了解Objective-C语言 ** Objective-C 语言是"消息结构"(messaging structure) 类似C++ .Java 是"函数调用" ...

  8. node.js入门之二

    NPM 1.NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM ...

  9. WebAPI中Area的使用

    很简单,创建area后,添加一下代码到AreaRegistration中即可 context.Routes.MapHttpRoute( name: "api_default", r ...

  10. Common.Logging.dll----------配置方式,可选引用,用于日志输出

    1.简介common logging是一个通用日志接口,log4net是一个具体实现. common logging可以把输出连接到其他非log类上, 如EntLib的日志.NLog等 2.使用接下来 ...