百度之星2015资格赛1003 IP聚合 模拟题
发布时间:2020-12-13 22:27:22 所属栏目:百科 来源:网络整理
导读:题目链接:点击打开链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在
题目链接:点击打开链接
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
模拟题。实现代码如下:
#include <cstdio> #include <iostream> #include <cstring> #include <map> using namespace std; int main() { int n,m,t,T=1; int ip[1010][4],add[1010][4]; int web[55][4]; char sip[20],sweb[20]; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%s",sip); int len=strlen(sip); int cnt=0; for(int j=0;j<len;j++) { int tmp=0; while(sip[j]!='.'&&j<len) tmp=tmp*10+sip[j++]-'0'; ip[i][cnt++]=tmp; } //printf("%d.%d.%d.%d",ip[i][0],ip[i][1],ip[i][2],ip[i][3]); } for(int i=0;i<m;i++) { scanf("%s",sweb); int len=strlen(sweb); int cnt=0; for(int j=0;j<len;j++) { int tmp=0; while(sweb[j]!='.'&&j<len) tmp=tmp*10+sweb[j++]-'0'; web[i][cnt++]=tmp; } //printf("%d.%d.%d.%d",web[i][0],web[i][1],web[i][2],web[i][3]); } printf("Case #%d:n",T++); for(int i=0;i<m;i++) { int ans=0; for(int q=0;q<n;q++) { for(int j=0;j<4;j++) add[q][j]=ip[q][j]&web[i][j]; bool flag=true; for(int k=0;k<q;k++) if(add[q][0]==add[k][0]&&add[q][1]==add[k][1]&&add[q][2]==add[k][2]&&add[q][3]==add[k][3]) { flag=false; break; } if(flag) ans++; } printf("%dn",ans); } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |