百度之星IP聚合(水题map&字符处理)
虽然题目停水的,但是好像字符处理运用的还比较合适
当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 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
#include <iostream>
#include <string>
#include <cstdio>
#include <map>
using namespace std;
string Getstr(string str){///规格化字符串(添加0)
string temp,getstr="";
int itl=0,itf=str.find(".");
for(int i=0; i<3; i++){
temp = str.substr(itl,itf-itl);
temp.insert(0,3-temp.length(),'0');
getstr+=temp;
itl=itf+1,itf=str.find(".",itf+1);
}
temp = str.substr(itl,str.length()-itl);
temp.insert(0,3-temp.length(),'0');
getstr+=temp;
return getstr;
}
int main (){
int t,xx=0;
cin>>t;
while(t--){
int m,n,coun=0;
cin>>m>>n;
string str,tab[1005];
for(int i=0; i<m; i++){
cin>>str;
tab[coun++]=Getstr(str);
}
printf("Case #%d:\n",++xx);
for(int i=0; i<n; i++){
cin>>str;
string temp = Getstr(str);
map<long long ,int > m;
for(int j=0; j<coun; j++){
long long sum=0;
for(int i=0; i<4; i++){
int aa=(tab[j][i*3]-'0')*100+(tab[j][i*3+1]-'0')*10+tab[j][i*3+2]-'0',bb=(temp[i*3]-'0')*100+(temp[i*3+1]-'0')*10+temp[i*3+2]-'0';
sum=sum*1000+(aa&bb);
}
m[sum]=0;
}
cout<<m.size()<<endl;
}
}
return 0;
}
百度之星IP聚合(水题map&字符处理)的更多相关文章
- 2015百度之星 IP聚合
IP聚合 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Descri ...
- poj 2105 IP Address(水题)
一.Description Suppose you are reading byte streams from any device, representing IP addresses. Your ...
- hdu5698 百度之星2016round2b第3题
这题首先是找规律推公式,然后就是组合数学的知识了. 题目是问到第n行第m列的格式有几种方案,我们可以用手算的方法列出当n和m比较小时的所有答案 比如我列出以下8*8的矩阵 矩阵上的数表示从那个位置到最 ...
- 2018"百度之星"程序设计大赛 - 资格赛 - 题集
1001 $ 1 \leq m \leq 10 $ 像是状压的复杂度. 于是我们(用二进制)枚举留下的问题集合 然后把这个集合和问卷们的答案集合 $ & $ 一下 就可以只留下被选中的问题的答 ...
- codeforces 659C C. Tanya and Toys(水题+map)
题目链接: C. Tanya and Toys time limit per test 1 second memory limit per test 256 megabytes input stand ...
- 2019 年百度之星—初赛一 B题 Game
题目链接 题意:最开始可以选择任意位置,在一个坐标轴上,依次走到一个区间里面,可以选择走一步两步,求最小步数. 思路:贪心,刚开始合并区间,确定初始位置以及方向.往右走肯定到左端点,往左走先到右端点, ...
- 2014年百度之星资格赛第三题Xor Sum
Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包括了N个正整数,随后 Prometheus 将向 Zeu ...
- 2014年百度之星资格赛第四题Labyrinth
Problem Description 度度熊是一仅仅喜欢探险的熊.一次偶然落进了一个m*n矩阵的迷宫.该迷宫仅仅能从矩阵左上角第一个方格開始走.仅仅有走到右上角的第一个格子才算走出迷宫,每一次仅仅能 ...
- 2018 百度之星 初赛 第六题 HDU6349
三原色图 Accepts: 281 Submissions: 1261 Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 262144/ ...
随机推荐
- oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性
学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2 ...
- Oracle自增主键的添加[sequence]--表数据已存在
--增加主键ID ); --设置sequence使ID自增 create sequence SEQ_ID minvalue maxvalue start ; --将id的值设置为sequence Up ...
- Redis资料汇总专题
1.Redis是什么? 十五分钟介绍 Redis数据结构 Redis系统性介绍 一个很棒的Redis介绍PPT 强烈推荐!非同一般的Redis介绍 Redis之七种武器 锋利的Redis redis ...
- 跟我一起写Makefile--- 变量(嵌套变量+追加变量+overrid+多行变量+环境变量+目标变量+模式变量)
目录(?)[-] 使用变量 一变量的基础 二变量中的变量 三变量高级用法 四追加变量值 五override 指示符 六多行变量 七环境变量 八目标变量 九模式变量 使用变量 ———— 在Makefil ...
- u-boot启动流程分析(1)_平台相关部分
转自:http://www.wowotech.net/u-boot/boot_flow_1.html 1. 前言 本文将结合u-boot的“board—>machine—>arch—> ...
- 《黄聪:手机移动站SEO优化教程》1、为什么要做手机移动端网站
视频地址:http://v.youku.com/v_show/id_XNzE2Mzk3MjI4.html
- OAF_EO系列5 - Update详解和实现(案例)
2014-06-14 Created By BaoXinjian
- python--输入一组无序的数,排序
N=int(raw_input('input the number N=')) number=[] while(N): m=int(raw_input('input..\n')) number.app ...
- [rm] Linux 防止"rm -rf /" 误删除
一.缘由: 最近看到这则新闻,很是悲伤,因为我最近也在用ansible:然而这一错误源自Ansible上糟糕的代码设计,这款Linux实用工具被用于在多台不同服务器上自动执行脚本. 开发者解释到,实际 ...
- zabbix安装,关闭SELinux
一.缘由 在安装zabbix的时候,按照官网的Zabbix Manual一路跑下来,zabbix的dashboard提示:zabbix server is not running the inform ...