博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
清点人数
阅读量:7117 次
发布时间:2019-06-28

本文共 1434 字,大约阅读时间需要 4 分钟。

问题 D: 清点人数

时间限制: 1 Sec  内存限制: 128 MB
提交: 16  解决: 9
[] [] [] [命题人:]

题目描述

NK中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去。由于NK中学的学生很多,在火车开之前必须清点好人数。
初始时,火车上没有学生。当同学们开始上火车时,年级主任从第一节车厢出发走到最后一节车厢,每节车厢随时都有可能有同学上下。年级主任走到第m节车厢时,他想知道前m节车厢上一共有多少学生,但是他没有调头往回走的习惯。也就是说每次当他提问时,m总会比前一次大。

 

输入

第一行两个整数n,k,表示火车共有n节车厢以及k个事件。
接下来有k行,按时间先后给出k个事件,每行开头都有一个字母A,B或C。
如果字母为A,接下来是一个数m,表示年级主任现在在第m节车厢;
如果字母为B,接下来是两个数m,p,表示在第m节车厢有p名学生上车;
如果字母为C,接下来是两个数m,p,表示在第m节车厢有p名学生下车。
学生总人数不会超过10
5

 

输出

对于每个A,输出一行,一个整数,表示年级主任的问题的答案。

 

样例输入

复制样例数据

10 7A 1B 1 1B 3 1B 4 1A 2A 3A 10

样例输出

0123

 

提示

对于全部数据,1≤n≤5×105,1≤k≤105

解题思路:裸的树状数组查询,修改。

#include
#include
#include
#include
#include
#include
#include
#define REP(i, a, b) for(int i = (a); i <= (b); ++ i)#define REP(j, a, b) for(int j = (a); j <= (b); ++ j)#define PER(i, a, b) for(int i = (a); i >= (b); -- i)using namespace std;const int maxn = 1e7 + 5;int n, k,p[maxn];int lowbit(int a) { return a & (-a);}int sum(int a) { int val=0; while (a) val += p[a], a -= lowbit(a); return val;}void update(int a,int w) { while (a<=n)p[a] += w,a+=lowbit(a);}int main(){ cin >> n>>k; int cur,z; while (k--) { char q; cin >> q>>cur; if (q == 'A') { cout << sum(cur) << endl; } else if (q == 'B') { cin >> z; update(cur, z); } else { cin >> z; update(cur, -z); } }}

 

转载于:https://www.cnblogs.com/czy-power/p/10357659.html

你可能感兴趣的文章
《Pro ASP.NET MVC 3 Framework》学习笔记目录
查看>>
/dev/null Read-only file system 系统无法启动
查看>>
查询并导出、导入mysql中的存储过程
查看>>
VSeWSS更新文档
查看>>
WCF分布式开发步步为赢(8):使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据...
查看>>
Numpy:高维数组(矩阵)
查看>>
远程桌面不能复制粘贴解决办法
查看>>
(转)Google Dart抗衡JavaScript的十大亮点
查看>>
强大的zsh配置文件
查看>>
Unity 5.1+ Assertion Library (断言库)
查看>>
java并发编程读书笔记(1)-- 对象的共享
查看>>
C# Generator 2D map (随机创建一个2D地表)
查看>>
distribution 中一直在运行 waitfor delay @strdelaytime 语句
查看>>
apache自带的ab压力测试工具用法详解
查看>>
windows和linux下mysql的重启命令
查看>>
第一篇博客
查看>>
backup4:数据库自动备份,自动删除备份文件
查看>>
spring boot(三):Spring Boot中Redis的使用
查看>>
通过DNS通道传输的交互式PowerShell脚本
查看>>
VueJs开发笔记—IDE选择和优化、框架特性、数据调用、路由选项及使用
查看>>