百度之星资格赛--IP聚合
IP聚合
当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在某个固定的子网掩码下,有多少个网络地址。网络地址等于子网掩码与 IP 地址按位进行与运算后的结果,例如:
子网掩码:A.B.C.D
IP 地址:a.b.c.d
网络地址:(A&a).(B&b).(C&c).(D&d)
第一行包含一个整数T,(1≤T≤50)代表测试数据的组数,
接下来T组测试数据。每组测试数据包含若干行,
第一行两个正整数N(1≤N≤1000,1≤M≤50),M。接下来N行,每行一个字符串,代表一个 IP 地址,
再接下来M行,每行一个字符串代表子网掩码。IP 地址和子网掩码均采用 A.B.C.D的形式,其中A、B、C、D均为非负整数,且小于等于255。
对于每组测试数据,输出两行:
第一行输出: "Case #i:" 。i代表第i组测试数据。
第二行输出测试数据的结果,对于每组数据中的每一个子网掩码,输出在此子网掩码下的网络地址的数量。
- 2
- 5 2
- 192.168.1.0
- 192.168.1.101
- 192.168.2.5
- 192.168.2.7
- 202.14.27.235
- 255.255.255.0
- 255.255.0.0
- 4 2
- 127.127.0.1
- 10.134.52.0
- 127.0.10.1
- 10.134.0.2
- 235.235.0.0
- 1.57.16.0
- Case #1:
- 3
- 2
- Case #2:
- 3
- 4
- /**
- 题意:给n个ip地址,m个子网掩码,求在每一个子网掩码下的网络地址有多少个
- 做法:结构体
- **/
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- #include <cmath>
- #define maxn 1100
- using namespace std;
- struct Node
- {
- int a;
- int b;
- int c;
- int d;
- Node(){}
- } node[maxn],ip[maxn];
- Node mm[maxn];
- int cmp(Node A,Node B)
- {
- if(A.a != B.a) return A.a < B.a;
- else if(A.b != B.b) return A.b < B.b;
- else if(A.c != B.c) return A.c < B.c;
- else return A.d < B.d;
- }
- int check(Node A,Node B)
- {
- if(A.a == B.a && A.b == B.b && A.c == B.c && A.d == B.d) return ;
- return ;
- }
- int main()
- {
- //freopen("in.txt","r",stdin);
- int Case = ;
- int T;
- scanf("%d",&T);
- while(T--)
- {
- int n,m;
- memset(mm,,sizeof(mm));
- memset(node,,sizeof(node));
- memset(ip,,sizeof(ip));
- scanf("%d %d",&n,&m);
- for(int i=; i<n; i++)
- {
- scanf("%d.%d.%d.%d",&ip[i].a,&ip[i].b,&ip[i].c,&ip[i].d);
- }
- for(int i=; i<m; i++)
- {
- scanf("%d.%d.%d.%d",&node[i].a,&node[i].b,&node[i].c,&node[i].d);
- }
- printf("Case #%d:\n",Case++);
- for(int i=; i<m; i++)
- {
- string str[maxn];
- string ch;
- int cnt = ;
- for(int j=; j<n; j++)
- {
- mm[j].a = (node[i].a&ip[j].a);
- mm[j].b = (node[i].b&ip[j].b);
- mm[j].c = (node[i].c&ip[j].c);
- mm[j].d = (node[i].d&ip[j].d);
- }
- sort(mm,mm+n,cmp);
- Node tmp;
- tmp = mm[];
- //cout<<tmp.a <<" "<<tmp.b <<" "<<tmp.c <<" "<<tmp.d<<endl;
- int res = ;
- for(int j=;j<n;j++)
- {
- if(!check(tmp,mm[j]))
- {
- res ++;
- tmp = mm[j];
- }
- }
- printf("%d\n",res);
- }
- }
- return ;
- }
百度之星资格赛--IP聚合的更多相关文章
- 2015百度之星之-IP聚合
IP聚合 Accepts: 138 Submissions: 293 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6553 ...
- 【百度之星】-IP聚合
问题描述: Problem Description 当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在某个固定的子网掩码下,有多少个 ...
- 模拟 2015百度之星资格赛 1003 IP聚合
题目传送门 /* 模拟水题,排序后找出重复的ip就可以了 */ #include <cstdio> #include <iostream> #include <algor ...
- 模拟 百度之星资格赛 1003 IP聚合
题目传送门 /* 模拟水题,排序后找出重复的ip就可以了 */ #include <cstdio> #include <iostream> #include <algor ...
- 2016百度之星 资格赛ABCDE
看题:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=690 交题:http://acm.hdu.edu.cn/search.php ...
- HDU 5688:2016"百度之星" - 资格赛 Problem D
原文链接:https://www.dreamwings.cn/hdu5688/2650.html Problem D Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5686:2016"百度之星" - 资格赛 Problem B
原文链接:https://www.dreamwings.cn/hdu5686/2645.html Problem B Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5685:2016"百度之星" - 资格赛 Problem A
原文链接:https://www.dreamwings.cn/hdu5685/2637.html Problem A Time Limit: 2000/1000 MS (Java/Others) ...
- 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)
.navbar-nav > li.active > a { background-image: none; background-color: #058; } .navbar-invers ...
随机推荐
- BZOJ1591 & 洛谷2924:[USACO2008 DEC]Largest Fence 最大的围栏——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1591 https://www.luogu.org/problemnew/show/P2924#sub ...
- MySQL安装出现“不是内部或外部命令,也不是可执行程序”等一系列问题的解决方案
MySQL安装出现“不是内部或外部命令,也不是可执行程序” 一.这是应该是环境变量处问题了,设置如下: 1)右击我的电脑选择“属性”,找到“高级系统设置” 2)在系统属性下,选择“高级”中的“环境变量 ...
- [Leetcode] search in rotated sorted array ii 搜索旋转有序数组
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...
- [PKUWC2018]随机算法
题意:https://loj.ac/problem/2540 给定一个图(n<=20),定义一个求最大独立集的随机化算法 产生一个排列,依次加入,能加入就加入 求得到最大独立集的概率 loj25 ...
- python升级引发的问题总结
http://www.cnblogs.com/ajianbeyourself/p/4214398.html http://www.cnblogs.com/hanggegege/p/6993003.ht ...
- bzoj 1098 [POI2007]办公楼biu bfs+补图+双向链表
[POI2007]办公楼biu Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 1543 Solved: 743[Submit][Status][Di ...
- 003.关于数组的操作 [growing]
1.获取数组的长度 #include<iostream> using namespace std; template<class T> int length(T& ar ...
- redis 查看所有键值
zb@zb-computer:/home/wwwroot/default/lion/Admin$ /usr/local/redis/bin/redis-cli 127.0.0.1:6379> k ...
- JVM之字节码执行引擎
方法调用: 方法调用不同于方法执行,方法调用阶段唯一任务就是确定被调用方法的版本(即调用哪一个方法),暂时还不执行方法内部的具体过程.方法调用有,解析调用,分派调用(有静态分派,动态分派). 方法解析 ...
- hdu 3689 Infinite monkey theorem
Infinite monkey theorem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...