poj 2443 Set Operation

本来以为sort一下然后二分就行,不是一个sb题嘛。。为什么要用bitset。。

T掉了。

然而bitset也是卡着时间296*MS(时间限制3000MS),肯定还是有什么奇技淫巧我不会

这题,感觉看了bitset都会做吧,,

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<bitset>
 4 #define N 1000005
 5 using namespace std;
 6 inline int ra()
 7 {
 8     int x=0,f=1; char ch=getchar();
 9     while (ch<'0' || ch>'9') {if (ch=='-') f=-1; ch=getchar();}
10     while (ch>='0' && ch<='9') {x=x*10+ch-'0'; ch=getchar();}
11     return x*f;
12 }
13 int n,c[1005];
14 /*bool find(int i, int x)
15 {
16     int l=1,r=c[i];
17     while (l<r)
18     {
19         int mid=l+r>>1;
20         if (a[i][mid]==x) return 1;
21         else if (a[i][mid]>x) r=mid-1;
22         else l=mid+1;
23     }
24     return a[i][l]==x;
25 }*/
26 bitset< 10005 > a[1005];
27 int main()
28 {
29     n=ra();
30     for (int i=1; i<=n; i++)
31     {
32         c[i]=ra();
33         for (int j=1; j<=c[i]; j++) a[i][ra()]=1;
34     }
35     int Q=ra();
36     while (Q--)
37     {
38         bool flag=0;
39         int x=ra(),y=ra();
40         for (int i=1; i<=n; i++) 
41         {
42             if (a[i][x] && a[i][y]) 
43             {
44                 printf("Yes\n");
45                 flag=1;
46                 break;
47             }
48         }
49         if (!flag) puts("No");
50     }
51     return 0;
52 }

 

posted @ 2017-03-13 21:29  ws_ccd  阅读(106)  评论(0编辑  收藏  举报