【codeforces85D】
去实验培训回来了……写个题先玩玩
这题给人一种平衡树的感觉
但是呢,实际上操作离线+离散化+线段树一样能做
#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】相关推荐
- 【CentOS】利用Kubeadm部署Kubernetes (K8s)
[CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...
- 【Spring】框架简介
[Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...
- 【C#】类——里式转换
类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...
- 【C#】Out与ref是干什么的?
关于return: 1.最后没有写 return 语句的话,表示程序正常退出 2.不需要返回值时,存在return的作用 例子 void main() {return; //return退出该程序的作 ...
- 【软件工程】RUP与软件开发5大模型
软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...
- 【VB】学生信息管理系统5——数据库代码
这次学生信息管理系统在代码的理解过程中遇到了一些问题.总结如下: 1. sql server的安装过程各个步骤的意思.在安装SQL Server的时候按照网上的步骤,我觉得这个需要学完整个数据库再返回 ...
- 白化(预处理步骤)【转】
白化(预处理步骤)[转] 介绍 我们已经了解了如何使用PCA降低数据维度.在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化.举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很 ...
- 【Tensorflow】tf.nn.atrous_conv2d如何实现空洞卷积?膨胀卷积
介绍 关于空洞卷积的理论可以查看以下链接,这里我们不详细讲理论: 1.Long J, Shelhamer E, Darrell T, et al. Fully convolutional networ ...
- 兑换量子计算机,阅读 | 【量子计算机】构造置换量子门
原标题:阅读 | [量子计算机]构造置换量子门 量子计算机的一个基本组成单位叫量子门(quantum gate),下面简单介绍些基本概念. 量子比特和量子态 量子计算机的信息存储单元是一种叫做量子比特 ...
最新文章
- Redis Primer(1)基于JedisPool的Redis hset并发性能测试 - @钟超 · 技术博客专栏 - 博客频道 - CSDN.NET...
- [Xcode 实际操作]六、媒体与动画-(1)使用图形上下文按一定比例缩放图片
- html面包屑菜鸟,css content属性与before及after伪元素配合使用价值发挥到最大
- 一、pytorch搭建实战以及sequential的使用
- java socket windows linux,socket在windows下和linux下的区别
- 可访问范围 与 visual 或 abstract “修饰符”
- 计算机一级选择题已做完确认,计算机一级选择题(附答案)
- LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
- Spark性能优化指南——高级篇
- Vite2.0搭建Vue3移动端项目
- 【教程】利用OBS+腾讯会议进行线上考试
- 如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(下)
- Linux学习笔记二十——系统裁剪之二
- matlab 6.5 vc6,MATLAB6.5 与 VC6.0混合编程中的 VC6.0的设置
- android 第三方圆弧进度条,Android 圆弧进度条 水平进度条 水波进度条
- python中三角函数运算符_Python入门之三角函数sin()函数实例详解
- Apostrophe not preceded错误
- Ps做的图片html显示不了,为什么导入到PS的图片有图层却显示不出来?
- 如何链接外部JavaScript文件
- python安装教程(Win8环境)