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;
    }

  • 相关阅读:
    UVa 481
    ZOJ 1108 & HDU 1160
    UVa 11450
    UVa 11242
    UVa 750
    UVa 725
    UVa 483
    UVa 10258
    UVa 793
    The Little Girl who Picks Mushrooms HDU 4422 水题类似模拟的一种感觉
  • 原文地址:https://www.cnblogs.com/ling-0-ling/p/5567572.html
Copyright © 2011-2022 走看看