cogs2235 烤鸡翅 贪心

链接:http://cogs.pro/cogs/problem/problem.php?pid=2235

题意:每天鸡翅数量都会增加,每天也会有人买一定数量鸡翅,求最多卖给几个人。

奥妙重重……

对每天的鸡翅数量分类讨论,如果够卖就卖上,不够卖就分析前些日子卖得最多的一个如果不卖是否够,够就退了那个,再卖这个。

为什么呢?证明如下:

如果够卖,可以发现剩下的数量更多,答案至少不会更坏;

如果不够卖,就需要退掉至少两天来卖,答案不会更好。

贪心策略得证。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<queue>
 6 using namespace std;
 7 const int maxn=250005;
 8 int x[maxn],y[maxn];
 9 priority_queue<int,vector<int>,less<int> >q;
10 int haha()
11 {
12     freopen("wing.in","r",stdin);
13     freopen("wing.out","w",stdout);
14     int n;scanf("%d",&n);
15     for(int i=1;i<=n;i++)scanf("%d",&x[i]);
16     for(int i=1;i<=n;i++)scanf("%d",&y[i]);
17     int ans=0;long long num=0;
18     for(int i=1;i<=n;i++)
19     {
20         num+=x[i];
21         if(num>=y[i])
22         {
23             num-=y[i];
24             ans++;
25             q.push(y[i]);
26         }
27         else if(!q.empty())
28         {
29             int k=q.top();q.pop();
30             if(k-y[i]>=0)
31             {
32                 num+=k-y[i];
33                 q.push(y[i]);
34             }
35             else q.push(k);
36         }
37     }
38     printf("%d\n",ans);
39 }
40 int sb=haha();
41 int main(){;}

cogs 2235

时间: 2024-10-21 03:03:40

cogs2235 烤鸡翅 贪心的相关文章

烤鸡翅

[题目描述] 在焦作太行路上,有一家烤鸡翅的生意火爆.因为好吃,所以卖的特别好.排队的人就特别多,经常有很多人买不到鸡翅. 鸡翅会在每分钟烤出Xi个,每分钟也只会卖给一个客人,第i个客人需要买Yi个.因为生意火爆,老板可以选择在这分钟不卖给这个客人鸡翅,或者卖给这个顾客他需要的鸡翅, 如果现在剩余的鸡翅不够,那就肯定不能卖给这个客人.无论这个客人能否买到鸡翅,他必须离开队伍. 现在给定N分钟,且已经知道每分钟烤出的鸡翅个数Xi,也知道每个客人需要鸡翅的Yi个数,现在老板想知道,如何合理安排卖给与

2017/07/25 杂题(完全不可做题(划去))选讲

先膜一发主讲人@Antileaf 真是核平的一天那--大脑已经被蹂躏的死去活来了-- cogs2421 简单的Treap 链接:http://cogs.pro/cogs/problem/problem.php?pid=2421 题意:什么都给你了,建出Treap,输出先序遍历顺序. 实际上只是用了Treap的原则建树--先按照数值大小排序,然后按照建立笛卡尔树方法,维护单调栈,最大的全扔到右儿子去即可. 1 #include<iostream> 2 #include<cstdio>

老友记

周日早上出发跟几个老同学喝茶,在半途时候,有个不能准时中午到,于是我转念也想逛逛街,即便是一个人的寂寞. 我头脑里第一个念想就是书店,于是查了最近的,就是广州购书中心.去到那,书店比我想象中的还要大,竟然有6层.我并没有特别想要看什么书,闲逛中有挺多席地而坐的读者,或专注或不经意看看身旁走过的人.摄影的书还是一幅幅图,心笑这也太敷衍了.哲学区我是站得最久,里面有对人情世故的一些建议和看法,本来想找一本<犯罪心理学>的,没找到.小说类的小姑娘就比较多,言情和玄幻小说不多,这些没什么营养,看多都是

码农小汪-设计模式之-命令模式

大话设计模式的例子讲的非常的好,理解起来也方便!有时候忘了.想到这些特殊的例子感觉就是特别爽. 烤羊肉串带来的思考! 路边摊羊肉串: 老板,我这里排的比较先啊,我最先给钱.老板这个没有熟啊.我的是 辣的啊!老板没有放盐啊!场面混乱,已经分不清谁是谁的啊,人太多了.烤肉的质量也受到了影响,心情不好也就不好啊.烤肉的人心情受到了顾客的影响. 店面的烤肉 服务员,给我来两串羊肉串,2鸡翅,啤酒两瓶. 鸡翅没得啦,点别的吧,肉精吧.辣一点. 两者的比较啊: 路边的生意不稳定,往往就是那几个时间,客源不固

设计模式(四)

迭代器模式 GOOD:提供一种方法顺序访问一个聚敛对象的各个元素,而又不暴露该对象的内部表示. 为遍历不同的聚集结构提供如开始,下一个,是否结束,当前一项等统一接口. 例: #include <iostream> #include <vector> using namespace std; template<class Item> class Iterator { public: virtual void first()=0; virtual void next()=0

烤羊肉串引来的思考——命令模式

夏日的夜晚,大街上总是热闹非凡,人们都喜欢约三五好友去吃烧烤喝啤酒,所谓吃着烤串儿,还唱着歌儿,那感觉就一个字--爽. 在街上溜达,突然发现一个烧烤摊人不多,于是你就上前对老板说:来10串羊肉串,3串鸡翅--.说完之后,你就站在边上等,这时你发现,人越来越多,之间大家七嘴八舌跟老板说自己的要求,明显看到老板有些手足无措.首先老板要记住谁先来的谁后来的,谁给钱了谁没给钱,谁不要放辣椒--等等,太多的问题接踵而至,而且那么多人都在那里盯着老板烤串,这样就引起了挑剔,哪一串多了,哪一串少了什么的,真的

OSChina 周一乱弹 —— 你是不是姓胖?

各位程序员们早上好,你们每天醒来做的第一件事应该就是刷朋友圈吧 朋友圈有个人名字叫陈博,每次早上刷到他的动态都感觉好邪恶. 要是小小编的朋友圈里有这么一号人,我早把他和谐掉了 各位男同志们,你们知道怎么辨别女生吗? @OSC大胖森: 其实女生的姓也很重要 体检排队...前面的某位女士...via:mwlind 各位单身少年们不介意你们以后的对象姓胖吧 有了支付宝之后,你们出门还带钱吗? @苗哥:时代在发展,现在就连路边买个烤鸡腿章鱼小丸子汉堡炸鸡烤肉火锅烤土豆肉夹馍蜜糖莲藕炒面蛋炒饭炸年糕煎鱿鱼

C#面向对象设计之——命令模式(十五)

一.前言 命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,另外对请求排队或记录请求日志,以及支持可撤销的操作. 二.结构图 三.实例代码 namespace 命令模式 { class Program { static void Main(string[] args) { //开店前的准备 Barbecuer boy = new Barbecuer(); Command bakeMuttonCommand1 = new BakeMuttonCommand(boy); Co

设计模式——命令模式(C++实现)

1 [[email protected] ~/learn_code/design_pattern/19_order]$ cat order.cpp 2 #include <iostream> 3 #include <string> 4 #include <vector> 5 #include <algorithm> 6 #include <iterator> 7 8 using namespace std; 9 10 class Receiver