문제
https://www.acmicpc.net/problem/14569
걸린 시간
00 : 21 : 05
풀이
C++
#include <bits/stdc++.h>
#define INF 1e9
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int n, m, k, p, ti, qi;
vector<ll> t, q;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
t.resize(n);
for(int i = 0; i < n; i++){
cin >> k;
for(int j = 0; j < k; j++){
cin >> ti;
t[i] |= (1ll << ti);
}
}
cin >> m;
q.resize(m);
for(int i = 0; i < m; i++){
cin >> p;
for(int j = 0; j < p; j++){
cin >> qi;
q[i] |= (1ll << qi);
}
}
for(int i = 0; i < m; i++){
int cnt = 0;
for(int j = 0; j < n; j++){
if(t[j] == (t[j] & q[i]))
cnt++;
}
cout << cnt << "\n";
}
return 0;
}
처음 풀어본 비트마스크 문제.
'Baekjoon' 카테고리의 다른 글
Baekjoon 1256번 사전 (0) | 2020.10.09 |
---|---|
Baekjoon 1062번 가르침 (0) | 2020.10.07 |
Baekjoon 14226번 이모티콘 (0) | 2020.10.07 |
Baekjoon 1405번 미친 로봇 (0) | 2020.10.05 |
Baekjoon 2239번 스도쿠 (0) | 2020.10.04 |
댓글