Bulbs 【模拟】or 【set】

    xiaoxiao2021-04-14  27

    Bulbs Vasya wants to turn on Christmas lights consisting of m bulbs. Initially, all bulbs are turned off. There are n buttons, each of them is connected to some set of bulbs. Vasya can press any of these buttons. When the button is pressed, it turns on all the bulbs it’s connected to. Can Vasya light up all the bulbs?

    If Vasya presses the button such that some bulbs connected to it are already turned on, they do not change their state, i.e. remain turned on.

    Input The first line of the input contains integers n and m (1 ≤ n, m ≤ 100) — the number of buttons and the number of bulbs respectively.

    Each of the next n lines contains xi (0 ≤ xi ≤ m) — the number of bulbs that are turned on by the i-th button, and then xi numbers yij (1 ≤ yij ≤ m) — the numbers of these bulbs.

    Output If it’s possible to turn on all m bulbs print “YES”, otherwise print “NO”.

    Example Input 3 4 2 1 4 3 1 3 1 1 2 Output YES Input 3 3 1 1 1 2 1 1 Output NO Note In the first sample you can press each button once and turn on all the bulbs. In the 2 sample it is impossible to turn on the 3-rd lamp.

    水题 一个 代码

    #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<cmath> #include<queue> #include<stack> #include<map> #include<vector> #include<set> #define CLR(a,b) memset((a),(b),sizeof(a)) #define inf 0x3f3f3f3f #define mod 100009 #define LL long long #define M 10000 #define ll o<<1 #define rr o<<1|1 #define lson o<<1,l,mid #define rson o<<1|1,mid+1,r using namespace std; set<int>S; int main() { int n,m; int i,j; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { int num; scanf("%d",&num); while(num--) { int a; scanf("%d",&a); S.insert(a); } } if(S.size()==m) printf("YES\n"); else printf("NO\n"); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-669730.html

    最新回复(0)