zoukankan      html  css  js  c++  java
  • 养鱼喂妹子(WOC)

    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define N 100001
    long long a[N],b[N],maxx;
    int n;
    bool check(long long x)
    {
    long long carry=0;
    for(int j=1; j<n; j++)//嘛,n个城镇啊~ 
    {
    carry=carry+b[j]-x;//0.0 carry是干啥的? 貌似是记录比(哔)大或小的量 
    if(carry<0)//
    carry=carry-a[j+1]-a[j];// 较小时,和别的城镇要
    else
    if(carry<a[j+1]-a[j])//比较路费啊,运过去的鱼全当路费了。。。还有意思么 
    carry=0;
    else
    carry-=a[j+1]-a[j]; //大于运费时不管多少还是管用~ 
    }
    return carry+b[n]>=x;//所得的值比x大时,说明x小了啊,所以改变 

    }
    int main()
    {
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
    cin>>a[i]>>b[i];
    maxx=max(maxx,b[i]);//找出最大的捕鱼数目 
    }
    long long l=1,r=maxx,mid;
    while(l<=r)//开始二分 
    {
    mid=(l+r)>>1;
    if(check(mid))//检查啊~ 
    l=mid+1;
    else
    r=mid-1;
    }
    cout<<l-1<<endl;//为什么是l-1嘞?!其实r也OK。。。但我不知道为什么 
    return 0;
    }

  • 相关阅读:
    P2168 [NOI2015]荷马史诗
    P3195 [HNOI2008]玩具装箱TOY
    P1972 [SDOI2009]HH的项链
    P2339 提交作业usaco
    P3974 [TJOI2015]组合数学
    P2831 愤怒的小鸟
    [校内模拟题4]
    P3952 时间复杂度
    P3531 [POI2012]LIT-Letters
    2019.10.1 qbxt模拟题
  • 原文地址:https://www.cnblogs.com/ling-0-ling/p/5567572.html
Copyright © 2011-2022 走看看