TOJ5705动态序列操作(STL or treap)】的更多相关文章

传送门:动态序列操作 在一个动态变化的序列中,完成以下基本操作: (1)插入一个整数 (2)删除一个整数 (3)查找序列中最大的数 (4)查找序列中最小的数 (5)求x的前驱(前驱定义为不大于x的序列中最大的数) (6)求x的后继(后继定义为不小于x的序列中最小的数) 输入 第一行为n,表示操作的次数,接下来有n行(n≤100000) 每行为以下操作之一: (1)1 x:将x插入 (2)2 x:删除x,x在序列中一定存在,若有多个相同值,只删除一个. (3)3:查找序列中最大的数 (4)4:查找…
题意: 一开始有n个非负整数h[i],接下来会进行m次操作,第i次会给出一个数c[i],要求选出c[i]个大于0的数并将它们-1,问最多可以进行多少次? 分析: 首先一个显然的贪心就是每次都将最大的c[i]个数-1,于是就可以用无旋式treap来维护,基本操作中split_k和split_v都使用普通的merge,但在提取区间并打完标记后,因为整个序列的单调性发生改变,需要使用启发式合并(只在修改过后使用). code #include<iostream> #include<cstdio…
1.序列概览 1.数据结构 序列.容器 Python中最基本的数据结构是序列,其有索引(从左到右第一个索引为0,从右到左第一个索引为-1). Python包含6中内建的序列: 列表 元组 字符串 Unicode字符串 buffer对象 xrange对象 2.列表和元组的主要的主要区别:列表可以修改,元组则不能. 一般来说,几乎所有的情况下都可以用列表替代元组(例外情况:使用元组作为字典的键的时候,在这种情况下,因为键不可修改,所以不能用列表) 3.序列可以包含其他的序列 4. 容器基本上式包含其…
2962: 序列操作 Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 678  Solved: 246[Submit][Status][Discuss] Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问[a,b]这一段区间中选择c个数相乘的所有方案的和mod 19940417的值. Input 第一…
1858: [Scoi2010]序列操作 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1961  Solved: 991[Submit][Status][Discuss] Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区…
1858: [Scoi2010]序列操作 Time Limit: 10 Sec  Memory Limit: 64 MB 线段树,对于每个区间需要分别维护左右和中间的1和0连续个数,并在op=4时特殊处理一下. Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把[a, b]区间内的所有数全变成1 2 a b 把[a,b]区间内的所有…
略恶心的线段树...不过只要弄清楚了AC应该不难.... ---------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream>   #define rep( i , n ) for( int i = 0 ; i < n ; i++ ) #defin…
.NET 使用 MySql.Data.dll 动态库操作MySql的帮助类--MySqlHelper 參考演示样例代码,例如以下所看到的: /// <summary> /// MySql 数据库操作类 /// </summary> public class MySqlHelper { /// <summary> /// MysqlConnection /// </summary> private static MySql.Data.MySqlClient.M…
[bzoj]2962序列操作 标签: 线段树 题目链接 题意 给你一串序列,要你维护三个操作: 1.区间加法 2.区间取相反数 3.区间内任意选k个数相乘的积 题解 第三个操作看起来一脸懵逼啊. 其实是可以合并的. $ c[o].s[i]=\sum_{j=0}^{20}c[lc].s[j]×c[rc].s[i-j]$ 跟$C_m^n=\sum_{i=0}^n C_n^i×C_{m-n}^{n-i} $这个等式是一个道理的吧. 然后想怎么维护加和取反. 取反比较容易,把取奇数个的答案变成相反数.…
2962: 序列操作 Time Limit: 50 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 有一个长度为n的序列,有三个操作1.I a b c表示将[a,b]这一段区间的元素集体增加c,2.R a b表示将[a,b]区间内所有元素变成相反数,3.Q a b c表示询问[a,b]这一段区间中选择c个数相乘的所有方案的和mod 19940417的值. Input 第一行两个数n,q表示序列长度和操作个数. 第二行n…