A:操作序列

析题得说:

考察点 : 模拟,STL库容器的使用
坑点 : 区间不要搞丢东西

难点 :

这个题比较变态的是我们不知道每次输入每行是一个数还是两个数,就需要进行判断,
怎么判断呢?用 scanf 的话遇到空格就 stop 了,那么我们只能选择用字符串进行
处理了,因为两个数之间会有空格进行断开(出题人还是比较良心的)
然后挨个处理就行了。

Code :

#include <map>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; const int maxn = 1e6 + 10; map<int,int>maps;
map<int,int>::iterator it; string str;
int n; int main(void) {
scanf("%d",&n);
string s;
// 吸收换行字符
getline(cin, s);
while(n --) {
getline(cin,str);
if(str[0] == '-') {
if(maps.size()) {
for(it = maps.begin(); it != maps.end(); it ++) {
cout << it -> second << endl;
// 最好删除掉,不能 maps[it ->first] = 0
// 这样的话这个数还是存在的
maps.erase(maps.begin());
break;
}
} else cout << "skipped" << endl;
} else {
int i = 0,x = 0,y = 0;
for(i = 0; i < str.size(); i ++) {
// 将前面的一部分转换成 整数
if(str[i] != ' ') x = x * 10 + str[i] - '0';
else break;
}
if(i == str.size()) {
// 说明只有一个数
if(maps.find(x) != maps.end())
// 查找这个数是否存在,不能直接输出 maps[x],容易出错
cout << maps[x] << endl;
else
cout << 0 << endl;
} else {
for(i ++; i < str.size(); i ++) {
if(str[i] != ' ')
y = y * 10 + str[i] - '0';
else
break;
}
// 看在这个范围内是否存在其他的女数
// 后面 + 31 是因为 有可能正好是 x + 30 这个数
if(maps.lower_bound(x - 30) == maps.lower_bound(x + 31)) {
maps[x] += y;
}
}
}
}
return 0;
}

后记 :

1、学到用字符串进行处理不知道会有多少输入的值
2、对 map 有了更深的了解

小白月赛22 A : 操作序列的更多相关文章

  1. 小白月赛22 G : 仓库地址

    G : 仓库地址 考察点: 二维中位数 坑点 : 做就 OK 析题得侃: 我们发现 x 和 y 是相互独立的,也就是说先移动 x 或者先移动 y 都是可以到达一个点的,所以我们可以先找到 横坐标的 中 ...

  2. 小白月赛22 J : 计算 A + B

    J:计算 A + B 考察点 : 高精度,字符串 坑点 : 字符串中可能全是数字,或者 + 超过 1 个,需要进行特殊判断 析题得侃: 关于高精度的各种板子 Code: #include <ve ...

  3. 小白月赛22 F: 累乘数字

    F:累乘数字 考察点: 思维,高精度 坑点 : 模拟就 OK 析题得侃: 如果你思维比较灵敏:直接输出这个数+ d 个 "00"就行了 当然,我还没有那么灵敏,只能用大数来搞了 关 ...

  4. 小白月赛22 E : 方格涂色

    E:方格涂色 考察点 : 思维,模拟 坑点 : long long 其他的好像没什么,读懂题意就可以 AC 不要被样例画的图所迷惑 Code: #include <vector> #inc ...

  5. 小白月赛22 D : 收集纸片

    D:收集纸片 考察点 : 全排列,对数据范围的估计程度 坑点 : 注意算最后回到初始的那步距离 析题得侃 : 一看题目最短路,诶呦,这不是最拿手的 BFS 走最短路吗?哈哈,定睛一看 这么多目的地,这 ...

  6. 小白月赛22 B : 树上子链

    B:树上子链 考察点 : 树的直径 坑点 : long long, 是点权不是边权 一个点也算一条链 析题得侃: 关于树的直径 这道题考察的是树的直径,最好用树形DP来写,具体解释详见上述博客, 这道 ...

  7. [比赛|考试]nowcoder 小白月赛7

    牛客小白月赛7 比赛地址.本次比赛我切了8道(ACM赛制),rank(20). 反思:刚入手ACM赛,光追求刺激了,没有总结ACM赛制的经验.是应该多提交>..还是少提交...小白赛还有两道不会 ...

  8. 【牛客小白月赛21】NC201605 Bits

    [牛客小白月赛21]NC201605 Bits 题目链接 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出3根柱子,最开始时n个盘子按照大小被置于最左的柱子. 如果盘子数 ...

  9. 树的最长链-POJ 1985 树的直径(最长链)+牛客小白月赛6-桃花

    求树直径的方法在此转载一下大佬们的分析: 可以随便选择一个点开始进行bfs或者dfs,从而找到离该点最远的那个点(可以证明,离树上任意一点最远的点一定是树的某条直径的两端点之一:树的直径:树上的最长简 ...

随机推荐

  1. ubuntu下怎么配置/查看串口-minicom工具

    一.安装minicom工具: 可直接使用命令sudo apt-get install minicom来完成安装 上面的截图因为检测到我已经安装过了. 二.通过minicom工具配置串口: 1.启动mi ...

  2. Windows服务器使用Telegraf采集服务器监控指标输出到influxdb

    1.环境说明 操作系统:Windows Server 2008 R2 IP:192.168.10.135 官方文档地址 :https://docs.influxdata.com/telegraf/v1 ...

  3. Literature Review: Improving Image-Based Localization by Active Correspondence Search

    Abstract Input: A query image Source: A point cloud reconstruction of a large scene (有一百多万3D点) Resul ...

  4. 《python可以这样学》第二章

    Python序列 列表与列表推导式 列表创建与删除 创建列表对象 >>> a_list = list((3, 5, 7, 9, 11)) >>> a_list = ...

  5. CHECK INDEX OF TABLE

    SELECT INDEX_NAME,COLUMN_NAME FROM ALL_IND_COLUMNS WHERE table_name = '';

  6. Python 编程入门(1):基本数据类型

    以下所有例子都基于最新版本的 Python,为了便于消化,每一篇都尽量短小精悍,希望你能尽力去掌握 Python 编程的「概念」,可以的话去动手试一下这些例子(就算目前还没完全搞懂),加深理解. 程序 ...

  7. springboot快速创建项目框架

    一.项目框架准备 1.1 新建maven空项目,并在pom中引入依赖 <parent> <groupId>org.springframework.boot</groupI ...

  8. AI Web 1.0

    kali:192.168.0.103 目标机:192.168.0.105 0X01 端口和目录扫描 打开目标主页没有任何信息 a) 端口扫描 只有一个80端口开启 b) 目录扫描 0x03 查看敏感目 ...

  9. day16 匿名函数

    # 匿名函数# 函数名 = lambda 参数1,(参数2,....) : 返回值 [注意:匿名函数不允许换行]# 匿名函数返回值和正常函数一样可以是任意数据类型# def add(x,y):# re ...

  10. 【学习笔记】B站-2019-NLP(自然语言处理)之 BERT 课程 -- 相关课程笔记

    BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构. 传统的RNN网络:最大的问题,因为不能并 ...