hdu 4288 Coder(单点操作,查询)
题意:
三种操作:
1. add x – add the element x to the set;
2. del x – remove the element x from the set;
3. sum – find the digest sum of the set.
The digest sum should be understood by:sum(ai) where i % 5 ==3
where the set S is written as {a1, a2, ... , ak} satisfying a1 < a2 < a3 < ... < ak
数据规格:
N ( 1 <= N <= 105 )
1 <= x <= 109.
思路:
BC做过一题和这个一模一样的,,,哎,,,这题早就做过了,可是BC却没有做出来,,,
这个还要离线处理,因为x很大
代码:
int const maxn=1e5+5;
struct node{
int cnt;
ll sum[5];
}tree[maxn<<2];
int n,tot;
int q[maxn],a[maxn];
char ope[maxn][15];
void build(int l,int r,int rt){
tree[rt].cnt=0;
memset(tree[rt].sum,0,sizeof(tree[rt].sum));
if(l==r) return;
int m=(l+r)>>1;
build(lson);
build(rson);
}
void pushUp(int rt){
rep(i,0,4)
tree[rt].sum[i]=tree[rt<<1].sum[i]+tree[rt<<1|1].sum[((5-tree[rt<<1].cnt%5)%5+i)%5];
}
void update(int k,int pos,int num,int l,int r,int rt){
tree[rt].cnt+=k;
if(l==r){
tree[rt].sum[0]+=(k*num);
return;
}
int m=(l+r)>>1;
if(pos<=m)
update(k,pos,num,lson);
else
update(k,pos,num,rson);
pushUp(rt);
}
int main(){
//freopen("test.in","r", stdin);
while(scanf("%d",&n)!=EOF){
tot=0;
rep(i,1,n){
scanf("%s",ope[i]);
if(ope[i][0]!='s'){
scanf("%d",&q[i]);
a[tot++]=q[i];
}
}
sort(a,a+tot);
tot=unique(a,a+tot)-a;
//rep(i,0,tot-1) cout<<a[i]<<" "; cout<<endl;
if(tot==0)
memset(tree[1].sum,0,sizeof(tree[1].sum));
else
build(1,tot,1);
rep(i,1,n){
int pos=lower_bound(a,a+tot,q[i])-a+1;
if(ope[i][0]=='a'){
update(1,pos,q[i],1,tot,1);
continue;
}
if(ope[i][0]=='d'){
update(-1,pos,q[i],1,tot,1);
continue;
}
printf("%I64d\n",tree[1].sum[2]);
}
}
//fclose(stdin);
}
hdu 4288 Coder(单点操作,查询)的更多相关文章
- HDU 4288 Coder (线段树)
Coder 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4288 题意:有三种类型的操作,(1)."add x",表示往集合里加入�数 ...
- HDU 4288 Coder ( 离散化 + 离线 + 线段树 )
这题跟ZOJ 3606的解题思路很相似. 题意:有3中操作:1.向集合中增加一个数x(1≤x≤1e9):2.从集合中删去一个数x(保证这个数存在):3.查询集合中所有位置满足i%5==3的数a[i]的 ...
- HDU 4288 Coder(线段树)
题意: 给定三种操作 1. add x 向序列中添加x,添加之后序列还保持有序 2. del x 删除序列中值为x的元素 3. sum 求下边模5等于3的元素和 思路: 直接暴力也可以过,就是看暴 ...
- hdu 4288 Coder (线段树+离线)
题意: 刚开始有一个空集合.有三种操作: 1.往集合中加入一个集合中不存在的数 x 2.从集合中删除一个已经存在的数 x 3.计算集合的digest sum并输出. digest sum求 ...
- hdu 4288 Coder
线段树好题,和 15 年的广东省省赛 C 题有相似之处,一开始我的思路有偏差,看了别人的博客后感觉处处技巧都是精华,主要是区间合并的技巧一时很难想到,先附上代码: #include<cstdio ...
- HDU 4288 Coder 【线段树+离线处理+离散化】
题意略. 离线处理,离散化.然后就是简单的线段树了.需要根据mod 5的值来维护.具体看代码了. /* 线段树+离散化+离线处理 */ #include <cstdio> #include ...
- 线段树(单点更新) HDOJ 4288 Coder
题目传送门 #include <cstdio> #include <cstring> #define lson l, m, rt << 1 #define rson ...
- hdu 4288 离线线段树+间隔求和
Coder Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句
如题: 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句不是一条关联查询语句. 例如: $list = $db->relation(true) ...
随机推荐
- 2.1Java基础
2.1.9面向对象的三大特性(携程): 封装:把一个对象的属性隐藏在对象内部,外部对象不能直接访问这个对象的内部信息.但是可以提供一些可以被外界访问的方法来操作属性.就比如我们常常创建一个类,把他的属 ...
- 回忆之placeholder
直接看效果点这里 HTML <!DOCTYPE html> <html> <head lang="zh-CN"> <meta charse ...
- ssh 执行 shell脚本执行jps时:-bash: jps: command not found
转至: https://www.codeleading.com/article/67592908468/ 我构建了hadoop集群.我们一定会写一个shell脚本去每一个节点上去jps,查看每个节点的 ...
- 深入xLua实现原理之C#如何调用Lua
本文主要是探讨xLua下C#调用Lua的实现原理,有关Lua如何调用C#的介绍可以查看深入xLua实现原理之Lua如何调用C# C#与Lua数据通信机制 无论是Lua调用C#,还是C#调用Lua,都需 ...
- 在Ubuntu18.04安装docker之后,以登陆用户身份执行docker pull jenkins,报错:connect: permission denied
Using default tag: latest Got permission denied while trying to connect to the Docker daemon socket ...
- P4859-已经没有什么好害怕的了【容斥,dp】
正题 题目链接:https://www.luogu.com.cn/problem/P4859 题目大意 两个长度为\(n\)的序列\(a,b\)两两匹配,求\(a_i>b_i\)的组数比\(a_ ...
- list集合根据字段分组统计转换成map
前言 表格需要对数据进行统计 代码实现 public Map getUnitStoreSum(String unitId, String billCode) { List store=listUnit ...
- HTML选择器的四种使用方法
选择器<style> 为了让.html代码更加简洁,这里引入选择器style 本文总共介绍选择器的四种使用方式 一.选择器的四种形式 1.ID选择器 id表示身份,在页面元素中的id不允许 ...
- ☠全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👾#010 #第十单元 Scanner类、Random类 #
一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.API的使用2.Scanner类的使用步骤3.Random类的使用 (Ⅱ)能力目标 1.掌握API的使用步骤2.使用 ...
- mysql通过logstash同步数据到es
大小写问题很严重 input 1.statement:mysql的连接使用 jdk版本有强要求 2.jdbc_driver_library:jar包的版本有对应要求 3.jdbc_driver_cla ...