아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

__builtout_popcount

시간 제한1초메모리 제한512 MB

요약
65536비트 비트셋의 1 개수를 세되, 각 호출에서 확인할 수 있는 비트가 20개 이하이다.
난이도

보통10점 중 7점

유형
비트 연산, 분할 정복, 수학
정답자
아직 제출이 없습니다

문제

GCC 내장 함수 중, __builtin_popcount(unsigned int x) 라는 함수가 존재한다. 이 함수는 unsigned int 형식인 x라는 값의 1비트가 몇 개 있는지를 구한다.

예를 들어,

  • __builtin_popcount(3) = 2,
  • __builtin_popcount(4) = 1,
  • __builtin_popcount(-1) = 32 (unsigned int 이므로)

등의 값이 나온다.

65536 bit 짜리 정수에 대해서 이와 같은 기능을 하는 __builtout_popcount 함수를 구현해보자! 단, bit값을 확인하는 연산은 최대 20번까지만 수행할 수 있다.

자세한 사항은 CUSTOM_BITSET::getbit 의 구현내용과, main 에서 정답 판정을 하는 부분을 살펴보자.

제한

  • 테스트케이스의 개수 T ≤ 100
  • CUSTOM_BITSET 의 bit 개수 = 65,536

예제

이 문제는 공개된 예제가 없습니다.