去实验培训回来了……写个题先玩玩

这题给人一种平衡树的感觉

但是呢,实际上操作离线+离散化+线段树一样能做

#include<bits/stdc++.h>
#define lson (o<<1)
#define rson (o<<1|1)
const int N=2e5+5;
typedef long long ll;
using namespace std;
struct Opt{int tp,num;}op[N];
int n,a[N],cnt=0,tot=0;
ll sumv[N<<2],modv[N<<2][5];
inline void pushup(int o){sumv[o]=sumv[lson]+sumv[rson];for(int i=0;i<=4;i++){int x=(sumv[lson]+i)%5;modv[o][x]=modv[lson][x]+modv[rson][i];}
}
inline void change(int o,int l,int r,int q,int v){if(l==r){sumv[o]+=v;modv[o][1]=v>0?a[q]:0;return;}int mid=(l+r)>>1;if(q<mid)change(lson,l,mid,q,v);else change(rson,mid+1,r,q,v);pushup(o);
}
inline int read(){int f=1,x=0;char ch;do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9');do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9');return f*x;
}
int main(){n=read();char s[20];for(int i=1;i<=n;i++){scanf("%s",s);if(s[0]=='a'){op[i].tp=1;op[i].num=read();a[tot++]=op[i].num;}else if(s[0]=='d'){op[i].tp=2;a[tot++]=op[i].num=read();}else op[i].tp=3;}sort(a,a+tot);int len=unique(a,a+tot)-a;for(int i=1;i<=n;i++){if(op[i].tp==1){int p=lower_bound(a,a+len,op[i].num)-a;change(1,1,len+1,p,1);}else if(op[i].tp==2){int p=lower_bound(a,a+len,op[i].num)-a;change(1,1,len+1,p,-1);}else printf("%I64d\n",modv[1][3]);}
}

View Code

转载于:https://www.cnblogs.com/zcysky/p/7231617.html

【codeforces85D】相关推荐

  1. 【CentOS】利用Kubeadm部署Kubernetes (K8s)

    [CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...

  2. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  3. 【C#】类——里式转换

    类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...

  4. 【C#】Out与ref是干什么的?

    关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...

  5. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

  6. 【VB】学生信息管理系统5——数据库代码

    这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...

  7. 白化(预处理步骤)【转】

    白化(预处理步骤)[转] 介绍 我们已经了解了如何使用PCA降低数据维度.在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化.举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很 ...

  8. 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积

    介绍 关于空洞卷积的理论可以查看以下链接,这里我们不详细讲理论: 1.Long J, Shelhamer E, Darrell T, et al. Fully convolutional networ ...

  9. 兑换量子计算机,阅读 | 【量子计算机】构造置换量子门

    原标题:阅读 | [量子计算机]构造置换量子门 量子计算机的一个基本组成单位叫量子门(quantum gate),下面简单介绍些基本概念. 量子比特和量子态 量子计算机的信息存储单元是一种叫做量子比特 ...

最新文章

  1. Redis Primer(1)基于JedisPool的Redis hset并发性能测试 - @钟超 · 技术博客专栏 - 博客频道 - CSDN.NET...
  2. [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片
  3. html面包屑菜鸟,css content属性与before及after伪元素配合使用价值发挥到最大
  4. 一、pytorch搭建实战以及sequential的使用
  5. java socket windows linux,socket在windows下和linux下的区别
  6. 可访问范围 与 visual 或 abstract “修饰符”
  7. 计算机一级选择题已做完确认,计算机一级选择题(附答案)
  8. LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
  9. Spark性能优化指南——高级篇
  10. Vite2.0搭建Vue3移动端项目
  11. 【教程】利用OBS+腾讯会议进行线上考试
  12. 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(下)
  13. Linux学习笔记二十——系统裁剪之二
  14. matlab 6.5 vc6,MATLAB6.5 与 VC6.0混合编程中的 VC6.0的设置
  15. android 第三方圆弧进度条,Android 圆弧进度条 水平进度条 水波进度条
  16. python中三角函数运算符_Python入门之三角函数sin()函数实例详解
  17. Apostrophe not preceded错误
  18. Ps做的图片html显示不了,为什么导入到PS的图片有图层却显示不出来?
  19. 如何链接外部JavaScript文件
  20. python安装教程(Win8环境)

热门文章

  1. 百度地图 JavaScript API ios不能使用情况
  2. python基础编程:python如何实现浪漫的烟花秀(附代码)
  3. cfg80211 subsystem中的cfg80211_ops
  4. Linux ftp服务器虚拟用户的建立
  5. BaseQuickAdapter 条目复用问题
  6. mysql问题系列(一)-----No space left on device
  7. asp.net 生命周期
  8. ubuntu 20.04 安装软件踩坑
  9. CentOS7创建组删除组创建用户删除用户
  10. EXCEL之隐形对象的清理办法