Empty 집합 & Full 집합
int set = 0;
int set = (1 << 20) - 1;
원소 추가
set |= (1<<p);
원소 포함 여부 체크
if( set & ( 1<<p ) )
cout << "p번째 원소는 집합안에 존재 " << endl;
원소 삭제
set &= ~(1<<p);
원소 토글
set ^= (1<<p);
모든 부분 집합 순회
for(int subset = set; subset; (subset-1) & set)
비트로 덧셈 구현
int pivot = 1;
while ( pivot <= a || pivot <= b) {
if( (pivot & b) != 0 )
a += pivot;
pivot = (pivot << 1);
}
Review
- 비트를 이용한 문제풀이시 사용될 만한 Code