IP聚合
Accepts: 2354
Submissions: 6308
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
#include<stdio.h> #include<string.h> #include<queue> #include<algorithm> #include<stack> using namespace std; int a[1010],b[1010],c[1010],d[1010]; int p1[1010],p2[1010],p3[1010],p4[1010]; int main() { int t; int res[1100]; scanf("%d",&t); int num=1; while(t--){ memset(res,sizeof(res)); int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d.%d.%d.%d",&a[i],&b[i],&c[i],&d[i]); int A,B,C,D; for(int i=0;i<m;i++){ scanf("%d.%d.%d.%d",&A,&B,&C,&D); int t1,t2,t3,t4; int tot=1; for(int j=0;j<n;j++){ int x=0; t1=A&a[j],t2=B&b[j],t3=C&c[j],t4=D&d[j]; if(j==0){ p1[1]=t1,p2[1]=t2,p3[1]=t3,p4[1]=t4; continue; } for(int k=1;k<=tot;k++){ if(t1==p1[k]&&t2==p2[k]&&t3==p3[k]&&t4==p4[k]) x=1; } if(!x){ tot++; p1[tot]=t1,p2[tot]=t2,p3[tot]=t3,p4[tot]=t4; } } res[i]=tot; } printf("Case #%d:\n",num++); for(int i=0;i<m;i++) printf("%d\n",res[i]); } return 0; }