博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「一本通 4.1 练习 1」清点人数(loj10116)
阅读量:5238 次
发布时间:2019-06-14

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

题目描述

NK 中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去。由于 NK 中学的学生很多,在火车开之前必须清点好人数。

初始时,火车上没有学生。当同学们开始上火车时,年级主任从第一节车厢出发走到最后一节车厢,每节车厢随时都有可能有同学上下。年级主任走到第 m 节车厢时,他想知道前 m 节车厢上一共有多少学生,但是他没有调头往回走的习惯。也就是说每次当他提问时,m 总会比前一次大。

输入格式

第一行两个整数 n,k,表示火车共有 n 节车厢以及 k 个事件。

接下来有 k 行,按时间先后给出 k 个事件,每行开头都有一个字母 ABC

  • 如果字母为 A,接下来是一个数 m,表示年级主任现在在第 m节车厢;
  • 如果字母为 B,接下来是两个数 m,p,表示在第 m 节车厢有 p 名学生上车;
  • 如果字母为 C,接下来是两个数 m,p,表示在第 m 节车厢有 p 名学生下车。

学生总人数不会超过 10^55​​。

输出格式

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

样例

样例输入

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

样例输出

0123

数据范围与提示

对于 30%的数据,1≤n,k≤10^44​​,至少有 300030003000 个 A

对于 100% 的数据,1≤n≤5×10^5,1≤k≤10^5,,至少有 3×10^4个A

 

#include
#include
#include
#include
using namespace std;const long long maxn=500010;int n, k;inline void qread(int &x){ x = 0; int ch = getchar(); while(ch < '0' || ch > '9') ch =getchar(); while(ch >='0' && ch <= '9') x = 10 * x + ch - 48, ch = getchar();}struct BItree{ int data[maxn]; BItree(){ memset(data, 0, sizeof(data)); } void add(int x, int v){ for(; x <= n; x += (x&-x)) data[x] += v; } int sum(int x){ int ans = 0; for(; x; x -= (x&-x)) ans += data[x]; return ans; }}bi;int main(void){ qread(n); qread(k); while(k--){ string op; cin >> op; if(op == "A"){ int x; qread(x); printf("%d\n", bi.sum(x)); } else if(op == "B"){ int x, y; qread(x), qread(y); bi.add(x, y); } else{ int x, y; qread(x), qread(y); bi.add(x, -y); } }}

 

思路:

  树状数组模板

 

​​,1k105​​,至少有 3×1043\times 10^43×104​​ 个 A

转载于:https://www.cnblogs.com/junk-yao-blog/p/9470977.html

你可能感兴趣的文章
如果是JS文件限制了你的页面加载速度,不用再担心了
查看>>
angualr1 分页
查看>>
别个代码阅读学习(一)
查看>>
Swift3 alert警报视图的用法
查看>>
E20170930-hm
查看>>
powershell_基础篇
查看>>
git 远程服务器创建项目自动化部署、克隆推送免密码
查看>>
Codeforces Round #415 (Div. 2) B. Summer sell-off
查看>>
java directbytebuffer直接缓存,堆外内存,堆内内存,jni
查看>>
给CCMenuItemFont 加上背景图片
查看>>
Excel WorkBook, WorkSheet与Cell的概念
查看>>
About Native keyword of Java
查看>>
Java中的ReentrantLock和synchronized两种锁定机制的对比
查看>>
【OS_Linux】Linux下软件的安装与卸载
查看>>
了解thinkphp(五)
查看>>
第七章总结
查看>>
JScrollPane的使用
查看>>
display: table-cell的实用应用
查看>>
说说最易被忽略的CSS强制性换行
查看>>
[好文翻译]WEB前端性能优化的14条规则
查看>>