Baekjoon

Baekjoon 14569번 시간표 짜기

ppwag 2020. 10. 7. 22:37

문제

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

댓글