解いた問題

10/04/2012

SRM430 Div1 Easy

250

xの2進数表現で0のビットを下位から埋めていく。



class BitwiseEquations {
public:
  long long kthPlusOrSolution(int x, int k)
  {
    vector<lli> idx;
    for (lli i = 0; i < 62; ++i) {
      if (x & (1LL << i)) ; else idx.push_back(i);
    }
    lli ret = 0;
    for (lli i = 0; i < 62; ++i) {
      if (k & (1LL << i)) ret += (1LL << idx[i]);
    }
    return ret;
  }
};