zoukankan      html  css  js  c++  java
  • 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
    ",ans);
    39 }
    40 int sb=haha();
    41 int main(){;}
    cogs 2235
    只要是活着的东西,就算是神我也杀给你看。
  • 相关阅读:
    MySQL_update同一张表
    MySQL_前缀索引_建立
    oracle_partition sample_simple
    oracle_partition sample
    java_java 利用JAX-RS快速开发RESTful 服务
    Java_Spring MVC_Servlet
    匿名函数
    randrange()和random() 函数
    迭代器 生成器 面向过程编程
    enumerate 模块
  • 原文地址:https://www.cnblogs.com/Loser-of-Life/p/7236721.html
Copyright © 2011-2022 走看看