随笔分类 -  数据结构 树状数组

摘要:题目大意 一些小朋友在排队,每次来一个人,第i个人会插到第x个人的后面。权值为y。保证x∈[0,i 1]。 按照最后的队伍顺序,依次输出每个人的权值。 解题分析 好气吖。本来是在做splay练习,然后发现这道题用splay写T掉了,可能是我的splay常数太大了吧。~~要不要考虑去学一下自顶向下建树 阅读全文
posted @ 2017-05-04 21:44 rpSebastian 阅读(214) 评论(0) 推荐(0)
摘要:problem Iahub and Xors 题目大意 一个n*n的矩阵,要求支持两种操作。 操作1:将一个子矩阵的所有值异或某个数。 操作2:询问某个子矩阵的所以值的异或和。 解题分析 由于异或的特殊性,可以用二维树状数组来维护。 因为同一个值只有异或奇数次才有效,因此若单点修改某个点,那么其影响 阅读全文
posted @ 2016-09-19 20:13 rpSebastian 阅读(612) 评论(0) 推荐(0)
摘要:Problem Different GCD Subarray Query 题目大意 给定n个数的序列,有q个询问,每次询问一个区间中所有子区间所形成不同的gcd的数量。 解题分析 由于固定一个数为右端点,所能形成的gcd共有logn,所以可以预处理出每个数为右端点所能形成的gcd,相同gcd取左端点 阅读全文
posted @ 2016-09-12 20:45 rpSebastian 阅读(508) 评论(0) 推荐(0)
摘要:Problem Youngling Tournament 题目大意 给一个序列a[i],每次操作可以更改一个数,每次询问 将序列排序后有多少个数a[i]>=sum[i-1]。 n<=10^5,q<=5*10^4,a[i]<=10^12 解题分析 可以发现,在最优情况下,该序列长度最多为logn。 将 阅读全文
posted @ 2016-08-31 23:52 rpSebastian 阅读(324) 评论(0) 推荐(0)
摘要:Problem Counting Intersections 题目大意 给定n条水平或竖直的线段,统计所有线段的交点个数。 (n<=100000) 解题分析 首先将线段离散化。 然后将所有线段按照横坐标的顺序,按照先插入再查找再删除的顺序进行操作。 对于横线 如果是左端点,则将其纵坐标加1,右端点则 阅读全文
posted @ 2016-08-19 13:53 rpSebastian 阅读(705) 评论(1) 推荐(0)
摘要:一道比较水的二维树状数组,开100个即可,只有100种颜色还是比较EZ的。 1 Program BZOJ1452; 2 const maxn=308; 3 maxc=108; 4 var a:array[0..maxn,0..maxn,0..maxc] of longint; 5 ... 阅读全文
posted @ 2014-12-27 08:59 rpSebastian 阅读(173) 评论(0) 推荐(0)