비트 마스킹 기본연산

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 2진수 형태로 출력
void show(int* a) {
    for (int i = 32; i > 0; i--) {
        cout << ((*& (1 << i - 1)) ? 1 : 0);
    }
}
 
// 모든 원소를 삭제 
void init(int* a) {
    *= 0;
}
 
// 모든 원소를 포함
void full(int* a) {
    *= -1;
}
 
// 특정 원소를 삭제
void drop(int* a, int i) {
    *&= ~(1 << i);
}
 
// 특정 원소를 포함
void set(int* a, int i) {
    *|= (1 << i);
}
 
// 특정 원소 토글
void toggle(int* a, int i) {
    *a ^= (1 << i);
}
 
// 특정 원소의 포함 여부를 확인
bool isSet(int* a, int i) {
    return *& (1 << i);
}
 
// 마지막 원소 확인
int getLast(int* a) {
    return (*& -*a);
}
 
// 마지막 원소 삭제
void dropLast(int* a) {
    *&= (*- 1);
}
cs

 

https://www.acmicpc.net/problem/11723

 

11723번: 집합

첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.

www.acmicpc.net

기본 연습문제

 

https://www.acmicpc.net/problem/2098

 

2098번: 외판원 순회

첫째 줄에 도시의 수 N이 주어진다. (2 ≤ N ≤ 16) 다음 N개의 줄에는 비용 행렬이 주어진다. 각 행렬의 성분은 1,000,000 이하의 양의 정수이며, 갈 수 없는 경우는 0이 주어진다. W[i][j]는 도시 i에서 j

www.acmicpc.net

[비트 마스킹] 대표예제

 

https://www.acmicpc.net/problem/1102

 

1102번: 발전소

은진이는 발전소에서 근무한다. 은진이가 회사에서 잠깐 잘 때마다, 몇몇 발전소가 고장이난다. 게다가, 지금 은진이의 보스 형택이가 은진이의 사무실로 걸어오고 있다. 만약 은진이가 형택이

www.acmicpc.net

 

 

https://www.acmicpc.net/problem/1562

 

1562번: 계단 수

첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.

www.acmicpc.net

 

 

https://www.acmicpc.net/problem/1194

 

1194번: 달이 차오른다, 가자.

첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고,

www.acmicpc.net

 

반응형

'자료구조 + 알고리즘' 카테고리의 다른 글

스택 (Stack)  (0) 2021.09.13
리스트 (List)  (0) 2021.09.13
인덱스 트리  (0) 2021.09.13
세그먼트 트리  (0) 2021.09.13
슬라이딩 윈도우  (0) 2021.09.13

+ Recent posts