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) ...
 
随机推荐
- nuxt.js同路由跳转参数不同,mounted不执行时
			
watch: { '$route'(to, from) { if (to.fullPath !== from.fullPath) { this.$nextTick(() => { // 不加th ...
 - input竖直的输入框,文字从上到下排列
			
有的时候可能会有这样的需求,一个竖直的输入框,输入信息,文字也是从上到下排列: (但是在移动端或用轮播swiper时不起作用,可以用textarea代替input) <!DOCTYPE html ...
 - git 要求密码的解决方法:【生成gitLab公钥】:以及如何配置GitLab中的SSH key
			
参考链接: https://www.cnblogs.com/yjlch1016/p/9692840.html https://blog.csdn.net/u011925641/article/deta ...
 - 『Python』matplotlib坐标轴应用
			
1. 设置坐标轴的位置和展示形式 import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl mpl.use ...
 - YbtOJ#903-染色方案【拉格朗日插值,NTT,分治】
			
正题 题目链接:https://www.ybtoj.com.cn/contest/115/problem/3 题目大意 两个长度为\(n+1\)的序列\(a,b\) \(a_i\)表示涂了\(i\)个 ...
 - P3211-[HNOI2011]XOR和路径【高斯消元】
			
正题 题目链接:https://www.luogu.com.cn/problem/P3211 题目大意 一个\(n\)个点\(m\)条边的无向图,从\(1\)到\(n\)随机游走.求期望路径异或和. ...
 - mysql创建库
			
建库 GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; UTF8: CREATE DATABAS ...
 - JS 实现计算器功能
			
括号功能未实现,后续更 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
 - gRPC,爆赞
			
原文链接: gRPC,爆赞 gRPC 这项技术真是太棒了,接口约束严格,性能还高,在 k8s 和很多微服务框架中都有应用. 作为一名程序员,学就对了. 之前用 Python 写过一些 gRPC 服务, ...
 - Spring IOC Container原理解析
			
Spring Framework 之 IOC IOC.DI基础概念 关于IOC和DI大家都不陌生,我们直接上martin fowler的原文,里面已经有DI的例子和spring的使用示例 <In ...