Bryce1010模板

POJ244Set Operation(bitset用法)


/*
题意:给出n个集合(n<=1000),每个集合中最多有10000个数,
每个数的范围为1~10000,给出q次询问(q<=200000),
每次给出两个数u,v判断是否有一个集合中同时含有u,v两个数 
*/
#include<iostream>
#include<bitset>
#include<stdio.h>
using namespace std;

bitset<1001>b[10010];

int main()
{
    int n,c,q;
    int p,x,y;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&c);
        for(int j=1;j<=c;j++)
        {
            scanf("%d",&p);
            b[p].set(i);
        }
    }
    cin>>q;
    for(int i=1;i<=q;i++)
    {
        scanf("%d%d",&x,&y);
        int flag=0;
        if((b[x]&b[y]).any())flag=1;
        if(flag)cout<<"Yes"<<endl;
        else cout<<"No"<<endl;

    }

    return 0;
}

相关文章:

  • 2021-09-21
  • 2021-10-29
  • 2021-07-25
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-09-10
  • 2021-10-17
  • 2022-02-28
  • 2022-01-15
  • 2021-06-14
相关资源
相似解决方案