二零一五年百度之星程序设计大赛 - 资格赛1003
2015年百度之星程序设计大赛 - 资格赛1003
IP聚合
Accepts: 786
Submissions: 1787
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
#include<iostream> #include<vector> #include<map> #include<string> using namespace std; int main() { int T,N,M; int i,j,k=0; string str; char tmp[5],reschar[50]; map<string,int>mymap; map<string,int>::iterator it; map<string,int>resmap; vector<int>tmp_int,map_int; cin>>T; for(i=1;i<=T;i++) { cin>>N>>M; k=0; mymap.clear(); while(N--) { cin>>str; mymap[str]=1; } cout<<"Case #"<<i<<":"<<endl; while(M--) { cin>>str; tmp_int.clear(); resmap.clear(); for(j=0;j<str.size();j++) { if(str[j]!='.') { tmp[k]=str[j]; k++; } else { tmp[k]=0; tmp_int.push_back(atoi(tmp)); k=0; } } if(j==str.size()) { tmp[k]=0; tmp_int.push_back(atoi(tmp)); k=0; } for(it=mymap.begin();it!=mymap.end();++it) { map_int.clear(); memset(reschar,0,sizeof(reschar)); //cout<<it->first<<" "<<it->second<<endl; for(j=0;j<it->first.size();j++) { if(it->first[j]!='.') { tmp[k]=it->first[j]; k++; } else { tmp[k]=0; map_int.push_back(atoi(tmp)); k=0; } } if(j==it->first.size()) { tmp[k]=0; map_int.push_back(atoi(tmp)); k=0; } for(j=0;j<map_int.size();j++) { itoa(map_int[j] & tmp_int[j],tmp,10); strcat(reschar,tmp); strcat(reschar,"."); } //cout<<reschar<<endl; resmap[reschar]=1; } cout<<resmap.size()<<endl; } } return 0; }