CodeForces 276D Little Girl and Maximum XOR :L到R内找出两个数,使他们亦或和最大:找规律
像我这种一遇到这种类型题目必然先打个表==
然后发现其实就是找到L和R二进制由高到底第一位不同的数,低位全部变成1,想想也好明白==
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 int main() 6 { 7 long long i,j,er,ans,a,b; 8 scanf("%I64d%I64d",&a,&b); 9 a^=b; j=-1; 10 for (i=0;i<=63;i++) 11 if (a&(1ll<<i)) j=i; 12 er=1; ans=0; 13 for (i=0;i<=j;i++) 14 ans+=er,er*=2; 15 printf("%I64d\n",ans); 16 return 0; 17 }