POJ-2799(找到一组IP的最小网络)
来源:互联网 发布:怎样申请淘宝开网店 编辑:程序博客网 时间:2024/06/05 21:56
题目:http://poj.org/problem?id=2799
思路:找出IP的最长公共前缀即最小网络,长度即子网掩码全1的长度
#include <cstdio>#define MAX1005int main(){unsigned n, i, a, b, c, d, ip, net;int len;while(scanf("%u", &n) == 1){scanf("%u.%u.%u.%u", &a, &b, &c, &d);net = a << 24 | b << 16 | c << 8 | d;len = 32;for(i = 1; i < n; ++i){scanf("%u.%u.%u.%u", &a, &b, &c, &d);ip = a << 24 | b << 16 | c << 8 | d;//find longest common prefix between ip and netint b = 31;for(; b >= 32-len; --b){if((net & (1u << b)) ^ (ip & (1u << b))) break;}//update common prefixlen = 31 - b;}//first len bits are 1unsigned mask = 0;for(int b = 31; b >= 32-len; --b) mask |= 1 << b;net &= mask;printf("%u.%u.%u.%u\n", net >> 24 & 255, net >> 16 & 255, net >> 8 & 255, net & 255);printf("%u.%u.%u.%u\n", mask >> 24 & 255, mask >> 16 & 255, mask >> 8 & 255, mask & 255);}return 0;}
0 0
- POJ-2799(找到一组IP的最小网络)
- (找到最小 ) CD
- 一种找到一组数中标记点的算法
- poj 1258 最小代价网络
- poj 3068 有流量限制的最小费用网络流
- 固定序列找相差最小的一组(2014华为应届毕业生上机笔试试题)
- 无序数组中找到第K小的数(或者找到最小的K个数)
- 基础网络概念(九)一组可以连上 Internet 的必要网络参数
- 查看一组日期的最大最小的方法
- 求一组整数中最小的两个数
- 寻找一组数中最小的k个数
- mysql 如何获取每一组创建时间最小的记录
- CentOS7 最小安装,静态IP、网络 配置
- (使用STL自带的排序功能进行排序7.3.12)UVA 11057 Exact Sum(在一组数据中找到这么两个数,使得他们的和等于指定数&&且这两个数之间的差值最小)
- 报表优化-------根据IP地址对比起始IP和结束IP找到相应的地域(判断两个IP地址)
- 快速找到数组总最小的数
- 找到环状序列的最小字典表示
- 找到数组中最小的K个数
- java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setCharacterStream(ILjava/io/Reader;
- C++代码之 常用算法汇总
- 返回环路的开头结点
- 2015 7 6 Java核心技术卷一 第11章 异常 断言 日志和调试
- javascript 正则表达式补充
- POJ-2799(找到一组IP的最小网络)
- Unity Tools
- linux中的分段
- 十六进制颜色转换RGB对照表
- SQLite数据库存储
- dhtmlx中增加一列(将类似按钮、下拉列表、输入框显示在一行上)
- MFC里的UpdateData()函数笔记
- Latex学习---1
- HDU 1010 Tempter of the Bone【经典DPS】