养鱼喂妹纸(看我注释多萌(呵呵)啊)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了养鱼喂妹纸(看我注释多萌(呵呵)啊)相关的知识,希望对你有一定的参考价值。
#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;
}
以上是关于养鱼喂妹纸(看我注释多萌(呵呵)啊)的主要内容,如果未能解决你的问题,请参考以下文章