nice 位运算果真是好东西,今天算是学到点啦^_^
pku 2443 前面没用位的时候不是超时就是超内存(96M),用了以后,nice~~
#include <stdio.h>
#include <math.h>
int c[10001][32];
int main()
{
int n,i,j,tmp,a,b;
while(scanf("%d",&n)==1)
{ for(i=1; i<=10000; i++)
for(j=0; j<32; j++)
c[i][j] = 0;
for(i=1; i<=n; i++)
{
scanf("%d",&j);
while(j--)
{
scanf("%d",&tmp);
a = 1<<(i%32);
if((c[tmp][i/32]&a) == 0)
c[tmp][i/32] += a;
}
}
scanf("%d",&n);
while(n--)
{
scanf("%d %d",&a,&b);
tmp = 0;
for(i=0; i<32&&tmp==0; i++)
tmp = c[a][i] & c[b][i];
if(tmp!=0)
printf("Yes\n");
else
printf("No\n");
}
}
return 0;
}
浙公网安备 33010602011771号