首页 > 代码库 > NYOJ 744 蚂蚁的难题(一)

NYOJ 744 蚂蚁的难题(一)

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=744

 

标准水题目。。找规律即可。。

 

题解:

找规律水题,任取两组数即可,如4,8。计算得这个区间异或最大值为7^8=15=(1111)2=2^4-1;

再任意找一组数2,6,计算得这个区间异或最大值为2^5=7=(111)2=2^3-1;

通过上述分析可得知最大值为2^n-1,而n正是右边界的数的二进制位数。

 

 

 

 #include <stdio.h>int main(){    long long a,b,x;    while(~scanf("%lld%lld",&a,&b))    {        x = a ^ b;        int cnt = 0;        while(x)            ++cnt , x >>= 1;        printf("%lld\n",((1LL)<<cnt)-1);    }    return 0;}