C++TSL之map容器(悲伤的故事)
说一个悲伤地故事!
这几天正在加紧时间学STL!昨天刚刚勉强把map弄懂一点点。(故事的前提)
今天,来到平台准备刷有关map的题,老师推荐了一道题目。说是有关map。然后。。不会!!
后来,百度。。瞬间蒙逼!什么鬼!
特此求教!
IP聚合
当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在某个固定的子网掩码下,有多少个网络地址。网络地址等于子网掩码与 IP 地址按位进行与运算后的结果,例如:
子网掩码:A.B.C.D
IP 地址:a.b.c.d
网络地址:(A&a).(B&b).(C&c).(D&d)
第一行包含一个整数TTT,(1≤T≤50)(1 \leq T \leq 50)(1≤T≤50)代表测试数据的组数,
接下来TTT组测试数据。每组测试数据包含若干行,
第一行两个正整数N(1≤N≤1000,1≤M≤50),MN(1 \leq N \leq 1000, 1 \leq M \leq 50),MN(1≤N≤1000,1≤M≤50),M。接下来NNN行,每行一个字符串,代表一个 IP 地址,
再接下来MMM行,每行一个字符串代表子网掩码。IP 地址和子网掩码均采用 A.B.C.DA.B.C.DA.B.C.D的形式,其中A,B,C,DA,B,C,DA,B,C,D均为非负整数,且小于等于255。
对于每组测试数据,输出两行:
第一行输出: "Case #i:" 。iii代表第iii组测试数据。
第二行输出测试数据的结果,对于每组数据中的每一个子网掩码,输出在此子网掩码下的网络地址的数量。
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 <cstdio>
#include <algorithm>
#include <cstring>
#include <set>
#include <vector>
#include <map>
using namespace std;
const int maxn=1100;
int a[maxn];
int b[maxn];
int c[maxn];
int d[maxn];
map<long long,int> m;
int main()
{
int t;
scanf("%d",&t);
for(int te=1;te<=t;te++)
{
int N,M;
scanf("%d%d",&N,&M);
for(int i=0;i<N;i++) scanf("%d.%d.%d.%d",&a[i],&b[i],&c[i],&d[i]);
printf("Case #%d:\n",te);
int A,B,C,D;
int ans;
long long temp;
for(int i=1;i<=M;i++)
{
m.clear();
ans=0;
scanf("%d.%d.%d.%d",&A,&B,&C,&D);
for(int j=0;j<N;j++)
{
temp=0;
temp=temp*1000+(a[j]&A);
temp=temp*1000+(b[j]&B);
temp=temp*1000+(c[j]&C);
temp=temp*1000+(d[j]&D);
if(!m[temp])
{
ans++;
m[temp]=1;
}
}
printf("%d\n",ans);
}
}
return 0;
}
求大神评论赐教!!
C++TSL之map容器(悲伤的故事)的更多相关文章
- map 容器的使用
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值. 一.map的说明 1 头文件 #include <map> ...
- 一种map容器遍历的方法
遍历算法是一种很常见而且非常重要的算法,我们用map容器的时候可能用的比较多的是查找,我今天才第一次要用到遍历.下面举个例子就知道了. map<string,string> mp; str ...
- CSU 1113 Updating a Dictionary(map容器应用)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1113 解题报告:输入两个字符串,第一个是原来的字典,第二个是新字典,字典中的元素的格式为 ...
- map容器
map容器一般用于对字符串进行编号,主要用于建图方面,例如把城市名按数字进行编号 #include"stdio.h" #include"string.h" #i ...
- Tangled in Cables(Kruskal+map容器处理字符串)
/** 题意: 给你两个城市之间的道路(无向图),求出需要的 电缆.如果大于所提供的,就输出Not enough ... 否则输出所需要的电缆长度. 输入:N (给 ...
- stl之map容器的原理及应用
容器的数据结构同样是采用红黑树进行管理,插入的元素健位不允许重复,所使用的节点元素的比较函数,只对元素的健值进行比较,元素的各项数据可通过健值检索出来.map容器是一种关联容器,实现了SortedAs ...
- STL --> map容器
map容器 一.map简介 map是一类关联式容器.它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响.对于迭代器来说,可以修改实值,而不能修改key. 二.ma ...
- 小白鼠排队(map容器插入数据的四种方法)
题目描述 N只小白鼠(1 <= N <= 100),每只鼠头上戴着一顶有颜色的帽子.现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色.帽子的颜色用“red”,“ ...
- 蓝桥杯 算法提高 9-3摩尔斯电码 _c++ Map容器用法
//****|*|*-**|*-**|--- #include <iostream> #include <map> #include <vector> #inclu ...
随机推荐
- redmine一键安装
参加项目 bitnami项目 https://bitnami.com/stack/redmine/installer 百度网盘地址为:http://pan.baidu.com/s/1jESnO
- 针对某个数据库error做systemstate dump
如果想对某个具体error做systemstate dump收集,可以借助event来实现. 例如想在数据库遇到ora-00054时,收集数据systemstate dump信息: 开启: sqlpl ...
- 关于更新Ubuntu14.04内核后,virtualbox无法开机vm的问题
virtualbox和linux内核结合比较紧密,所以当内核意外改动,可能会引起virtualbox无法启动虚拟机,只要尝试启动虚拟机,就会弹出让你执行/etc/init.d/vboxdrv setu ...
- 使用Java创建RESTful Web Service
REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...
- 用 CSS 做轮播图
对于用 css 实现一个轮播图的缘由,是那时候刚开始接触前端,完全还不懂 js.但是有一个项目(就是一个用来应付面试的作品)需要做一个轮播的效果,当时第一反应就是用 css3 自定义动画 -webki ...
- 阶乘之和 & 程序运行时间 & 算法分析
实例:输入n,计算S = 1! + 2! + 3! + 4! + ... + n!的末六位(不含前导0).其中 n ≤ 106. 分析:考虑到数据溢出后程序如下: #include <stdio ...
- 实验十四_访问CMOS RAM
编程:以"年/月/日 时:分:秒"的格式,显示当前的日期,时间. 注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系 ...
- 转:Busy Developers' Guide to HSSF and XSSF Features
Busy Developers' Guide to Features Want to use HSSF and XSSF read and write spreadsheets in a hurry? ...
- acm算法模板(3)
位 运 算 程序中的所有数在计算机内存中都是以二进制的形式储存的.位运算说穿了,就是直接对整数在内存中的二进制位进行操作.运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字 ...
- UML: 部署图
说部署图之前,先看看某24小时便利店管理系统的网络拓扑结构图: 这个图描述了本系统的整体物理结构,从该图我们可以得到以下信息:1.该便利店集团有总部和多个门店,总部管理财务.仓库.采购等事宜.2.二级 ...