HDU-5881-Tea-找规律+数学推导

来源:互联网 发布:oracle在linux安装 编辑:程序博客网 时间:2024/06/06 08:37

题目链接

题意:有一壶水,不知道有多少升,但是知道在[L,R]。每次可以向两个茶杯中倒一定量的茶,(可以控制多少),每次倒完之后可以知道茶壶里面是不是空的。最终的目标是控制两个茶杯中的茶不超过1升,茶壶中剩余不超过1升。问最多多少次可以完成要求。

思路:可以分析,最优的策略就是先向一个茶壶中到(L+1)/2 ,另外一个倒(L+3)/2升,然后交替到2升,再排除一些特例就好了。

#include<bits/stdc++.h>using namespace std;int main(){    long long l,r;    while(scanf("%lld%lld",&l,&r)!=EOF) {        if(r<=1) {            printf("0\n");            continue;        }        if(r<=2) {            printf("1\n");            continue;        }        if(r-l<4) {            printf("2\n"); continue;        }        if(l==0) {            printf("%lld\n", (r+1)/2 );            continue;        }        if(l==1) {            printf("%lld\n", (r+1)/2 );            continue;        }        printf("%lld\n", (r-l)/2+1 );    }    return 0;}
0 0
原创粉丝点击