ABC128-C: Switches

https://atcoder.jp/contests/abc128/tasks/abc128_c

  • 긴박하면 생각도 안나고 그런다. 매우 간단한 비트 연산 문제인데.. 그게 생각이 안나더라
  • 일단 N과 M이 10인거 보고 Bruteforce 생각했어야 하는데..
  • Bruteforce 인걸 알고도, 0과 1을 뻔히 보고도 비트연산이 생각이 안났다 ㅠㅠ
  • 거기다가 막판에 bound 조건 실수까지.. 가지가지 한다.
  • 백트래킹을 잘하자! 정말로.

  • 카운트 비트 함수나 외우자.
1
2
3
4
5
6
int countbit(int v) {
  unsigned int c; // c accumulates the total bits set in v
  for (c = 0; v; c++)
    v &= v - 1; // clear the least significant bit set
  return c;
}