题意:往集合里面添加删除数,集合中的数是按从小到大排列的,询问下标模5等于3的数的和。

记得当时这题不会做,

现在想简单多了,只要维护五个值和左右子树的size大小就行了。

#define maxn 100005

struct node
{
int l,r;
int sz;
i64 f[];
int mid()
{
return (l + r ) / ;
}
};
node tt[maxn * ];
struct node1
{
int id ;
i64 x;
};
node1 ml[maxn];
void push_up(int root )
{
int sz ;
sz = tt[root * ].sz;
tt[root].sz = tt[root * ].sz + tt[root * + ].sz;
for(int i = ; i < ; i ++ )
tt[root].f[i] = tt[root * ].f[i] + tt[root * + ].f[(i + - sz % ) % ];
return ;
}
void build(int root ,int l,int r )
{
tt[root].l = l ;
tt[root].r = r ;
tt[root].sz = ;
for(int i = ; i < ; i ++ ) tt[root].f[i] = ;
if(l == r ) return ;
int mid = tt[root].mid();
build(root * , l , mid );
build(root * + , mid + , r);
return ;
}
void update(int root ,int pos ,i64 vv)
{
if(tt[root].l == tt[root].r )
{
if(vv == )
{
tt[root].sz = ;
for(int i = ; i < ; i ++ ) tt[root].f[i] = ;
}
else
{
tt[root].sz = ;
for(int i = ; i < ;i ++ ) tt[root].f[i] = ;
tt[root].f[] = vv;
}
return ;
}
int mid = tt[root].mid();
if(pos <= mid )
update(root * , pos , vv);
if(pos > mid )
update(root * + , pos , vv);
push_up(root);
}
int num;
i64 b[maxn];
int pos[maxn];
char str[];
int main()
{
int x;
int n ;
while(scanf("%d",&n)!=EOF)
{
num = ;
for(int i = ;i <= n ; i ++ )
{
scanf("%s",str);
if(str[] == 'a')
{
ml[i].id = ;
scanf("%I64d",&ml[i].x);
b[num++] = ml[i].x;
}
else if(str[] == 'd')
{
ml[i].id = ;
scanf("%I64d",&ml[i].x);
b[num++] = ml[i].x;
}
else
{
ml[i].id = ;
}
}
sort(b ,b + num);
int pos;
num = unique(b,b+num) - b;
build(,,num);
for(int i = ; i <= n ; i ++ )
if(ml[i].id != )
{
pos = lower_bound(b , b + num , ml[i].x) - b + ;
if(ml[i].id == )
update(,pos,ml[i].x);
else update(,pos,);
}
else
{
printf("%I64d\n",tt[].f[]);
}
}
return ;
}

hdu4288 Coder 2012成都网络赛 A题的更多相关文章

  1. HDU 4730 We Love MOE Girls (2013成都网络赛,签到水题)

    We Love MOE Girls Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. HDU 4734 F(x) (2013成都网络赛,数位DP)

    F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. HDU 4737 A Bit Fun (2013成都网络赛)

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. HDU 4733 G(x) (2013成都网络赛,递推)

    G(x) Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. HDU 4731 Minimum palindrome (2013成都网络赛,找规律构造)

    Minimum palindrome Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  6. ACM-ICPC 2019南昌网络赛F题 Megumi With String

    ACM-ICPC 南昌网络赛F题 Megumi With String 题目描述 给一个长度为\(l\)的字符串\(S\),和关于\(x\)的\(k\)次多项式\(G[x]\).当一个字符串\(str ...

  7. ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval

    ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval 题目大意:给一个长度为n,值域为[1, n]的序列{a},要求支持m次操作: 单点修改 1 pos val 询 ...

  8. 2019ICPC南京网络赛A题 The beautiful values of the palace(三维偏序)

    2019ICPC南京网络赛A题 The beautiful values of the palace https://nanti.jisuanke.com/t/41298 Here is a squa ...

  9. HDU 4762 Cut the Cake (2013长春网络赛1004题,公式题)

    Cut the Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

随机推荐

  1. GNU名称解析

    GNU它是GNU's NOT UNIX缩写G     N    U缩写,和GNU全名GNU's NOT UNIX 中间 GNU 也GNU's NOT UNIX缩写,它使用递归方式定义GNU.

  2. tcpdump VS tshark用法(转)

    Tcpdump是网络协议分析的基本工具.tshark是大名鼎鼎的开源网络协议分析工具wireshark (原名叫ethereal)的命令行版本,wireshark可对多达千余种网络协议进行解码分析.W ...

  3. ios 仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View.

    仿新浪微博 UINavigationController 向左滑动时显示上一个控制器的View. 实现原理,UINavigationController 的 self.view显示时把当前显示的vie ...

  4. LeetCode204:Count Primes

    Description: Count the number of prime numbers less than a non-negative number, n. 比计算少n中素数的个数. 素数又称 ...

  5. 记View跨界平局

    <?xml version="1.0" encoding="utf-8"? > <RelativeLayout xmlns:android=& ...

  6. [原创] linux 下上传 datapoint数据到yeelink 【golang版本】同时上传2个数据点

    /* Create by sndnvaps<sndnvaps@gmail.com> * data: 2015-04-12* upload 2 datapoint to yeelink.ne ...

  7. C++实现堆排序

    堆排序是合并排序和插入排序排序方法共同的长处.它的时间复杂度O(nlgn),这也是一个地方排序算法:在任何时候,外阵中拥有唯一不变的输入数组存储的元素.引进第一家引进什么样的堆堆. 1.建堆:堆数据结 ...

  8. JavaScript概要

     当用户填写表单在线,用户输入表单经常要推测在页面上,它提示用户填写正确的邮箱.哪些项目不填之类,这些都是JavaScript小的特点. JavaScript是一种基于对象的脚本语言,使用它能够开 ...

  9. Ubuntu下搭建ASP.NET 5

    在Ubuntu下搭建ASP.NET 5开发环境   0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要 ...

  10. 关于scope_identity()与 @@IDENTITY

    原文:关于scope_identity()与 @@IDENTITY 参考:https://msdn.microsoft.com/zh-cn/library/ms190315.aspx scope_id ...