注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

力的博客

小歇一会 heiheidemaolv

 
 
 

日志

 
 

百度之星 资格赛 1003 IP聚合  

2015-05-26 15:52:40|  分类: ACM/C/C++/OJ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
题目:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=584&pid=1003

用个结构体保存,之后排序计算一下即可。


代码:
#include <stdio.h>
#include <algorithm>
using namespace std;

struct address
{
int a;
int b;
int c;
int d;
};

typedef struct address A;

bool dengyu(A x,A y)
{
if(x.a == y.a && x.b == y.b && x.c == y.c && x.d == y.d)
return true;
return false;
}

bool cmp(const A x, const A y)
{
if(x.a != y.a)
return x.a > y.a;
if(x.b != y.b)
return x.b > y.b;
if(x.c != y.c)
return x.c > y.c;
return x.d > y.d;
}

int main()
{
int icase;
int n,m;
A add[1001];
A add_fb[1001];
scanf("%d",&icase);
for(int ic = 0; ic < icase ; ++ic)
{
printf("Case #%d:\n",ic+1);
scanf("%d%d",&n,&m);
for(int in = 0; in < n; ++in)
{
scanf("%d.%d.%d.%d",&add[in].a,&add[in].b,&add[in].c,&add[in].d);
}
while(m--)
{
int ma,mb,mc,md;
scanf("%d.%d.%d.%d",&ma,&mb,&mc,&md);
for(int fb = 0; fb < n; ++fb)
{
add_fb[fb].a = add[fb].a & ma;
add_fb[fb].b = add[fb].b & mb;
add_fb[fb].c = add[fb].c & mc;
add_fb[fb].d = add[fb].d & md;
}
sort(add_fb,add_fb+n,cmp);
int count = 0;
if(n != 0)
count = 1;
for(int fb = 1; fb < n; ++fb)
{
if(dengyu(add_fb[fb],add_fb[fb-1]) == false)
count ++;
}
printf("%d\n",count);
}
}
return 0;
}
  评论这张
 
阅读(13)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018