树状数组
lahlah_
沉浸 尊重
展开
-
luogu P5070 [Ynoi2015] 即便看不到未来
https://www.luogu.com.cn/problem/P5070感觉YNOI polylog题都挺有趣的首先还是考虑离线下来扫描线按右端点离线记上一个xxx出现的位置为pre[x]pre[x]pre[x]考虑新加一个xxx,显然对左端点在pre[x]pre[x]pre[x]之前的区间是没有单独的贡献的因为要求长度在10以内的极长连续段个数,所以可以考虑把[x−11,x+11][x-11,x+11][x−11,x+11]的上一次的出现位置(在pre[x]之后的)全部拿出来,从大到小排序原创 2021-09-01 07:30:58 · 208 阅读 · 0 评论 -
luogu P5311 [Ynoi2011] 成都七中
https://www.luogu.com.cn/problem/P5311首先要注意到一个很重要的性质xxx在原图上的联通快,在点分树上也是一个联通快挺显然的吧然后把询问挂到,点分树x能到达的最浅的祖先上对于每一个点问题转换为求有多少个点到根的颜色区间[l,r]在询问的区间范围内乍一看好像是二维偏序,实际上可以离线的话有更好的做法考虑将询问区间和颜色区间放在一起,按照lll从大到小排序在开个桶,记录每个颜色最小的右端点,用树状数组把把对应位置设成1,维护前缀和即可被教育了QWQcod原创 2021-08-06 13:20:53 · 152 阅读 · 0 评论 -
CF1076E Vasya and a Tree
CF1076E Vasya and a Tree题意给出v,d,x,将以v节点的d级子树的权值加上x。做若干操作后,求每个点的权值题解首先肯定是离线,把询问离线到每个节点上那个树状数组维护然后到那个节点u的时候把深度dep[u]~dep[u]+d的全部加上x,回溯的时候再去掉然后就好了// luogu-judger-enable-o2#include<bits/stdc++.h>#define N 1000005#define int long long#define原创 2020-10-18 21:32:53 · 128 阅读 · 0 评论 -
luogu P2161 [SHOI2009]会场预约
luogu P2161 [SHOI2009]会场预约题解因为区间直接肯定是没有交集的所以每次 A 的时候就找接近ed 的区间的左端点树状数组维护左端点如果相交就删掉然后每个区间最多被加入和删掉一次所以时间复杂度是两个log 的然后这题就没了code:#include<bits/stdc++.h>#define N 2000005#define lowbit(x...原创 2019-09-28 11:04:57 · 154 阅读 · 0 评论 -
loj #2729. 「JOISC 2016 Day 1」俄罗斯套娃
loj #2729. 「JOISC 2016 Day 1」俄罗斯套娃先丢个官方题解:https://loj.ac/article/754官方题解讲得比较详细这题的关键其实就是把最小路径覆盖转换为最长不上升子序列然后我们就可以先把询问和原来的点离线一下在离散化按照A从大到小排序,然后就转换为了求最长不下降子序列问题直接树状数组维护前缀最大值即可看代码很容易明白的code:#incl...原创 2019-09-07 10:15:54 · 476 阅读 · 0 评论 -
loj #6468. 魔法
loj #6468. 魔法题目大意还是比较清楚的吧先考虑l=1,r=nl = 1, r = nl=1,r=n怎么做可以考虑每个魔法球对每个位置的贡献假设当前位置为aaa,下一个和它种类相同的魔法球位置为bbb设mid=a+b2mid = \frac{a+b}{2}mid=2a+b那么对于[a,mid][a,mid][a,mid]这个区间都用aaa来贡献(选a), [mid+1,b][...原创 2019-09-07 08:26:52 · 226 阅读 · 0 评论 -
CF1076E Vasya and a Tree
CF1076E Vasya and a Tree大意给一个以111为根的树,现在有mmm个操作,每个操作读入u,dep,wu,dep,wu,dep,w表示 给以uuu为根节点且距离uuu小于depdepdep范围上的点权值加www.题解这题离线后就很好做了首先把问题离线到树上的每个节点上然后可以用树状数组维护深度上的权值和具体还是看代码吧#include<bits/stdc...原创 2019-09-05 21:00:10 · 153 阅读 · 0 评论 -
[luogu P2617] Dynamic Rankings
题目大意:带修区间第K小题解:这是道很模板的题目,基本思路就是树状数组套主席树。首先对于主席树来讲是只支持静态区间第k小的,同样基于做差的思想,用树状数组维护动态开点的权值线段树,然后就行了。看代码容易懂Code:#include<bits/stdc++.h>#define N 200005#define lowbit(x) (x &...原创 2019-03-19 16:45:13 · 552 阅读 · 0 评论 -
bzoj 2743: [HEOI2012]采花
2743: [HEOI2012]采花Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 3086 Solved: 1589[Submit][Status][Discuss]Description萧芸斓是Z国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了n朵花,花有c种颜色...原创 2018-09-25 13:34:45 · 89 阅读 · 0 评论 -
bzoj: 1878[SDOI2009]HH的项链
1878: [SDOI2009]HH的项链Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 7136 Solved: 3522[Submit][Status][Discuss]DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH...原创 2018-09-25 13:29:34 · 182 阅读 · 0 评论 -
【SMOJ1699】圆与点与线段
题目描述有一个圆,圆周上按顺时针方向给出个点。第个点的颜色是,其中数据保证,而且每种不同的颜色有且只有两个点。这意味着有两个颜色是1的点,有两个颜色是2的点,有两个颜色是3的点,….有两个颜色是的点。不存在位置重叠的点。颜色相同的两个点之间连一条边(线段)。现在的问题是:有多少对边是交叉的?输入格式 1699.in第一行,一个整数。。第二行,个整数,第个整数是表示第个点的颜色。输出格式 1699....原创 2018-05-13 16:56:06 · 376 阅读 · 0 评论 -
树状数组的应用之把问题巧妙转换为树状数组的问题(【SMOJ】圆与点与线段解题报告)
题目描述有一个圆,圆周上按顺时针方向给出个点。第个点的颜色是,其中数据保证,而且每种不同的颜色有且只有两个点。这意味着有两个颜色是1的点,有两个颜色是2的点,有两个颜色是3的点,….有两个颜色是的点。不存在位置重叠的点。颜色相同的两个点之间连一条边(线段)。现在的问题是:有多少对边是交叉的?输入格式 1699.in第一行,一个整数。。 第二行,个整数,第个整数是表示第个点的颜色。输出格式 1699...原创 2018-05-13 15:20:19 · 638 阅读 · 1 评论