hdu 5881
Posted foreveroier
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 5881相关的知识,希望对你有一定的参考价值。
#include<bits/stdc++.h>
using namespace std;
long long l,r;
int main()
{
while(~scanf("%lld%lld",&l,&r))
{
if(l<=1) l=1;//l=0和l=1情况相同,所以直接设为 1
if(r<=1) puts("0");//r 小于等于 1 茶壶里剩下的水量不超过 1,不用倒,0次。
else if(r<=2) puts("1");//r 小于等于 2,给其中一个人倒 1
else if(l==r || l==r-1) puts("2");//如果 l 和 r 相等或小 1,那么一人倒 l/2 的茶水
else printf("%lld
",((r-l)>>1)+1);//如果上面的情况都不是,那么就用公式
//第一次倒给第一个杯子 l/2,第二次倒给第二个杯子 l/2+1,接着每次给两个杯子倒 2,重复进行此操作直到茶壶里的水小于等于 1
//公式:((r-l)>>1)+1
}
return 0;
}
以上是关于hdu 5881的主要内容,如果未能解决你的问题,请参考以下文章