天天看点

牛客暑假训练营7-xay loves or

​​传送门​​

牛客暑假训练营7-xay loves or

题意:

思路:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[1000];
int res[110];

int main()
{
  ll x,s;
  int cnt = 0;
  cin>>x>>s;
  ll xx=x,ss=s;
  while(x)
  {
    a[++cnt] = x%2;
    x=x>>1;
  }
  int num = 0;
  while(s)
  {
    res[++num] = s%2;
    s=s>>1;
  }
  ll ans = 0;
  ll sum = 0;
  int flag = 0;
  for(int i = 1; i <= cnt; i++)
  {
    if(a[i])
    {
      if(res[i])
      {
        ans++;
      }
      else
      {
        cout<<0<<endl;
        return 0;
      }
    }
    else
    {
      if(res[i])flag = 1;
    }
  }
  for(int i = 1; i <= num; i++)
  if(!a[i] &&res[i])
  {
    flag = 1;
    break;
  }
  ll p = (ll)pow(2,ans);
  if(a[1]&&res[1] && !flag)sum = 1;
  if(xx==ss)cout<<p-1<<endl;
  else
  cout<<p-sum<<endl;
}