题解 P1001 【A+B Problem 】
A+B Problem下的神犇都好多啊,鄙人实在不才几乎一半的算法都不会……
所以嘛,鄙人做这道题是用二分做的,看没有大神屑于用这个算法索性来个题解
就从数据范围里面二分范围直到找到答案为止。
#include<cstdio>
using namespace std;
int a,b,c;
int main(){long long l=-int(1e9)<<1,r=int(1e9)<<1;//左边界和右边界
scanf("%d%d",&a,&b);
while(r-l>1){c=(l+r)>>1;//二分的步骤啦
if(c-b<a)l=c;
else if(c-b>a)r=c;
else return printf("%d\n",c),0;
}if(l!=r)return printf("%d\n",r),0;
}