HDU

来源:互联网 发布:卸载加密软件 编辑:程序博客网 时间:2024/06/13 22:55

题意是倒茶,你只知道茶壶里水是L,R,可以壶里留1体积,往两个杯子里倒,最后两个杯子里面茶的体积差不能大于1

首先会想到肯定要向第一个杯子里倒(l+1)/2 体积的茶,这样下一步就可以往另一个杯子里到(l+1)/2 +1体积,这样两次倒掉的总体积是L+2,如果R-1大于L+2的话就需要继续倒,每次最多往一个杯子里倒两体积,倒多的话可能壶里没水,违反规则,这样在特判先R<=L-2的情况,其他情况就可以按上述决策去推次数


#include<bits/stdc++.h>typedef long long ll;using namespace std;int main(){ll l,r;while(cin>>l>>r){if(r<=1)cout<<0<<endl;else if(r==2)cout<<1<<endl; else if(r-l>=2){if(!l)l=1;cout<<(r-2-l)/2+2<<endl;}else cout<<2<<endl;} }


原创粉丝点击