题意:往集合里面添加删除数,集合中的数是按从小到大排列的,询问下标模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. hdu4771 Stealing Harry Potter&#39;s Precious

    注意--你可能会爆内存-- 假设一个直接爆搜索词-- 队列存储器元件被减少到-- #include<iostream> #include<map> #include<st ...

  2. 简单的反射 把datatable 转换成list对象

    /// <summary> /// 把datatable 转换成list对象 /// </summary> /// <typeparam name="T&quo ...

  3. 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议

    原文:重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议 [源码下载] 重新想象 Windows 8 Store ...

  4. HDU1237 简单的计算器 【堆】+【逆波兰式】

    简单的计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  5. Android应用-包装脚本批量方法

    1. 设定ant周边环境 加入用户变量: 变量名:ANDROID_SDK_ROOT 变量值:D:\Android Develop\adt-bundle-windows-x86_64-20140321\ ...

  6. not accessible due to restriction on required library

    The type AWTUtilities is not accessible due to restriction on required library D:\Program Files\jdk1 ...

  7. Unbound classpath container: &#39;JRE System Library [jdk17060]&#39; in project ***

    项目报告的错误列表 Unbound classpath container: 'JRE System Library [jdk17060]' in project **** 误. 原因是,我升级JDK ...

  8. 采用Java语言如何实现高速文件复制?

    今天review代码也看到了"大神"用老方法来实现文件拷贝.今天归结一下使用Java语言怎样实现高速文件复制: 代码1--使用文件通道的方式: import java.io.Fil ...

  9. Ubuntu在构建Robotframework+Selenium周围环境

    最近经历了从Windows进入系统Ubuntukylin下列.因此,测试工具也需要被重新安装,今天和共享安装过程. 我用的是环境:Ubuntu Kylin 14.04 64Bit系统. 启动权,首先, ...

  10. 【Espruino】NO.03 从点灯开始

    http://blog.csdn.net/qwert1213131/article/details/26819773 本文属于个人理解,能力有限,纰漏在所难免,还望指正! [小鱼有点电] 点灯程序应该 ...