标签:
题目大概说两个正整数a、b,已知s=a+b以及x=a xor b的值,问有几种a、b这样的数对。
还看了数据才A了这题。。好弱。。
官方的题解清楚多了:s = a+b = a xor b + (a and b)*2。。然后。。比上面清楚多了。。
1 #include<cstdio> 2 using namespace std; 3 int main(){ 4 long long s,x; 5 scanf("%lld%lld",&s,&x); 6 long long n=s-x; 7 if(x>s || (n&1)){ 8 putchar(‘0‘); 9 return 0; 10 } 11 long long res=1; 12 for(int i=1; i<=60; ++i){ 13 if((x>>i-1&1) && (n>>i&1)==0) res<<=1; 14 if((x>>i-1&1) && (n>>i&1)){ 15 putchar(‘0‘); 16 return 0; 17 } 18 } 19 if(x==s) res-=2; 20 printf("%lld",res); 21 return 0; 22 }
Codeforces 627A XOR Equation(思路)
标签:
原文地址:http://www.cnblogs.com/WABoss/p/5674651.html