线段树
A1847225889
在一次次翻车中吸取教训……
展开
-
6722. 【2020.06.13省选模拟】T2 Arcahv
题目正解卡空间毒瘤题。如果不卡空间,随便想想就知道怎么做(可持久化数据结构真香)……题目相当于是选一个线段树上的长度为2k2^k2k形式的区间,首先前提是x≥2kx\geq 2^kx≥2k(否则没有足够多比它小的数换进来)无论这个区间是否包含xxx,都要满足y≥大于x的数的个数y\geq大于x的数的个数y≥大于x的数的个数。并且如果区间不包含xxx,还需要满足y>0y>0y>0。首先将y=0y=0y=0的情况处理出来,用个答案数组特意去存它。于是问题的本质就是是否y≥大于x原创 2020-06-14 19:21:23 · 248 阅读 · 0 评论 -
6691. 【2020.06.05省选模拟】六道剑「一念无量劫」
题目一个排列,可以交换任意两个一次,或交换相邻两个无限次。求排序的最少交换次数。n≤3e5n\leq 3e5n≤3e5思考历程显然可以先交换,再求冒泡排序。先求出逆序对个数,然后问题转化为:找到一对(i,j)(i,j)(i,j)满足∑i<x<j[ai>ax>aj]\sum_{i<x<j}[a_i>a_x>a_j]∑i<x<j[ai>ax>aj]最大于是我就非常天真地想到了树套树,并尝试着想去实现一下。但没多久…原创 2020-06-06 13:33:25 · 244 阅读 · 0 评论 -
6491. 【GDOI2020模拟03.04】铺路
题目有一个图,每次加入一条边,对于每个加入的边分别输出加入这条边之后,加入的所有边中选择若干条使得所有点的度数为奇数,用到的边最长是多少。思考历程比赛时是推出了很多条性质的。但是一开始就理解错了题意,题目中的“道路”我理解成了路径,实际上是边。由于经过这种想法改过的题意过于毒瘤,我几乎没有思路。最终打了暴力上去,居然能水5分。正解有条性质:一个连通块符合条件,当且仅当这个连通...原创 2020-03-10 22:30:53 · 311 阅读 · 0 评论 -
6487. 【GDOI2020模拟02.29】列强争霸war
题目有个数列,你要维护它,支持区间赋值、区间加一、区间询问出现次数大于等于p∗(r−l+1)p*(r-l+1)p∗(r−l+1)的数有哪些。(题目的那个除以100100100就省掉了哈)思考历程总感觉这题不好直接用数据结构来搞。然后就想到了分块,每个块维护各自的答案。考虑合并两个区间的答案:假如某个数在两个区间的答案中都没有出现过,那么它在两个区间的并的答案中也不会出现;假如都出现...原创 2020-03-01 22:49:28 · 270 阅读 · 0 评论 -
3722. 【CF403E】Two Rooted Trees
题目有点长就不说了。思考历程强行刚出了一个O(nlg2n)O(n \lg^2 n)O(nlg2n)的做法,被卡了。先将dfsdfsdfs序求出来,一个子树对应着一段区间。用树上差分的思想来搞,维护区间里每条边的出现次数。树状数组套线段树来搞。由于直接树套树空间会被卡,所以在预处理的时候用可持久化线段树合并的方式来进行,空间复杂度是O(nlgn)O(n \lg n)O(nlgn)...原创 2020-01-07 15:49:06 · 243 阅读 · 0 评论 -
6371. 【NOIP2019模拟2019.9.28】基础图论练习题
题目题目大意维护一个无向图的割边条数,支持加边和删边。正解(PS:这是我很久之前在OJ上打出来的题解,现在直接copy过来)题解只有一句话,估计没多少人可以看得懂。感觉出题人偷懒不想写题解……刚了一个晚上终于理解了题解的做法……由于本人还没有AC(时间比较匆忙),所以只是在这里梳理一下思路,顺便造福一下人类。首先都知道线段树分治是个什么意思吧?线段树分治是一种有效地利用撤销操作...原创 2019-10-21 21:00:53 · 236 阅读 · 0 评论 -
[JZOJ4331] 【清华集训模拟】树
题目题目大意给你一棵带点权的树,求将树变成一堆不相交的链,而且这些链的权值和非负的方案数。正解显然这道题是个DPDPDP。首先求个前缀和sumsumsum。为了后面讲述方便,我这样设:fi,jf_{i,j}fi,j表示以iii为根的子树,其中某条链从xxx伸出到iii的方案数,而且sumx=jsum_x=jsumx=j。还有设gig_igi表示以iii为根的,没有伸出去的链的...原创 2019-08-27 22:40:18 · 174 阅读 · 0 评论 -
[JZOJ6258] 【省选模拟8.9】轰炸
题目题目大意给你一棵树和树上的许多条从后代到祖先的链,选择每条链需要一定代价,问覆盖整棵树的所有点的最小代价是多少。n,m≤100000n,m\leq 100000n,m≤100000正解(由于时间过于久远,所以直接说正解算了)对于这样的题,显然有一种暴力的DP做法。设fi,jf_{i,j}fi,j表示iii子树全部被覆盖,其中伸出来的一条链到达深度为jjj的祖先时的最小代价。...原创 2019-08-14 22:46:58 · 189 阅读 · 0 评论 -
[JZOJ1904] 【2010集训队出题】拯救Protoss的故乡
题目题目大意给你一个树形的网络,每条边从父亲流向儿子。根节点为原点,叶子节点流向汇点,容量为无穷大。可以给一些边扩大容量,最多总共扩大mmm容量。每条边的容量有上限。求扩大容量后最大的最大流。思考历程隐隐约约地猜到正解跟树链剖分有什么关系,可是没有打,也没有时间打。只能暴力DP来水分。设hi,jh_{i,j}hi,j为iii的父亲到iii的最大流,扩大了jjj次容量。gi,jg...原创 2019-08-09 21:04:52 · 283 阅读 · 0 评论 -
[JZOJ6279] 2019.8.5【NOIP提高组A】优美序列
题目题目大意给你一个排列以及若干区间,对于每个区间,问包含它的最小的优美序列的区间。所谓优美序列,即将权值排序后能够得到连续的排列。思考历程优美序列显然满足这个条件:mx−mn=r−lmx-mn=r-lmx−mn=r−l想了半天没有想出正解,于是开始打水法。首先n,m≤1000n,m\leq 1000n,m≤1000的时候可以暴力地求出每个区间是否是优美区间,然后更新它们子区间的答...原创 2019-08-09 20:25:34 · 353 阅读 · 0 评论 -
[JZOJ6278] 2019.8.5【NOIP提高组A】跳房子
题目题目大意给你一个矩阵,从(1,1)(1,1)(1,1)开始,每次往右上、右、右下三个格子中权值最大的那个跳。第一行上面是第nnn行,第mmm列右边是第111列。反之同理。有两个操作:跳KKK步和修改某行某列的权值。n,m≤2000n,m\leq 2000n,m≤2000思考历程一开始觉得似乎可以倍增,但这个修改操作太烦人,想了很久感觉倍增不可做。最终打暴力+判断循环节。然而爆...原创 2019-08-09 07:56:12 · 173 阅读 · 1 评论 -
[JZOJ2866] 【集训队互测 2012】Bomb
题目题目大意给你一个有nnn个点的平面。选择三个点,求两两之间曼哈顿距离和的最大值和最小值。思考历程&正解比赛的时候没有想太多,但感觉似乎比较水……首先有个很显然的性质,答案为这三个点的最大最小横坐标之差和最大最小纵坐标之差的和。可以把它看成矩形的周长,容易发现矩形至少一个顶点是三个点之一。后来才发现水的是求最大值,而不是求最小值。比赛之后开始和WMY刚……最大值是很...原创 2019-08-03 08:36:31 · 279 阅读 · 0 评论 -
[JZOJ4684] 【GDOI2017模拟8.11】卡牌游戏
题目描述题目大意有111到2n2n2n牌,一开始分别给两个人,每人nnn张。轮流出牌,给出对手出牌的顺序,若自己的牌更大,就记一分。在中间的某个时刻可以改变游戏规则。问最大的分数。思考历程显然,一定是把大的放分界点左边,把小的放右边。那可以枚举分界点,两边分别计算就可以了。时间复杂度为O(n2)O(n^2)O(n2),朴素的暴力算法。接下来我就想有没有什么数据结构可以在...原创 2019-05-09 18:20:03 · 204 阅读 · 0 评论 -
[JZOJ4769]【GDOI2017模拟9.9】graph
题目描述题目大意很明确了,所以不说……思考历程一看见这题,咦,这就是传说中的动态图吗?普通的动态图是维护连通性,这题是维护它是否是二分图,换言之就是维护它是否有奇环。好像很复杂的样子。想用LCT搞一搞,但是搞了很久终究搞不出来。如果这道题全部都是加入就好了,但对于删除,好像要影响很多东西……想了很久终将放弃。正解现在主要的正解大体分为两种:第一种方法是使用线段树。...原创 2019-03-22 21:51:53 · 226 阅读 · 0 评论 -
[JZOJ5232] 【NOIP2017模拟A组模拟8.5】带权排序
题目题目大意有一个数列AAA,数列上的每个数都是在[li,ri][l_i,r_i][li,ri]范围内随机的数。将这个数列进行稳定排序,得到每个位置在排序后的排名pip_ipi。f(A)=∑sipif(A)=\sum s_ip_if(A)=∑sipi,求E(f(A))E(f(A))E(f(A))。思考历程这种恶心的概率题根本就不知道该怎么思考好吗!于是打了个暴力,就...原创 2019-01-23 21:29:19 · 235 阅读 · 0 评论 -
JZOJ100045 【NOIP2017提高A组模拟7.13】好数
题目题目大意首先有一个定义:对于一个数,如果和它互质的数可以组成一个等差数列,那么这个数叫“好数”。现在给你一个数列,有三种操作:1、询问一段区间内的好数的个数。2、将一段区间内的数分别模一个值。3、将某个数修改。思考历程先看看这个题目。好熟悉的题目啊!这不就是初中OJ上的某道数位DP的题吗?然后发现不是那一道题,松了一口气。一眼看下去,一定有什么数论。说不定在得到...原创 2018-12-15 16:41:55 · 239 阅读 · 0 评论 -
[JZOJ5977] 【清华2019冬令营模拟12.15】堆
题目其中n,q≤500000n,q\leq 500000n,q≤500000题目大意让你维护一个堆。支持一下操作:在某个点的下面加上另一个点,然后进行上浮操作。询问某一点的权值。思考历程实际上,这题我还没有AC。不过思想是差不多了。一眼看这题,诶,不就是那道中学生数据结构题吗?直接树链剖分,然后splay一波搞定!思想还是很简单的!但是感觉有点长……正解上面的这...原创 2018-12-20 18:55:03 · 317 阅读 · 0 评论 -
【NOIP2018模拟11.01】树
题目描述题目大意维护一个序列,支持三种操作:1、修改一段区间,将这段区间内的所有数都andandand一个数。2、询问区间和。3、询问区间两两相加的平方和。N≤10000N\leq 10000N≤10000思路显然是一道数据结构题。毋庸置疑的,这绝对是一棵线段树。第三个操作还是比较简单的:∑(ai+aj)2=∑ai2+aj2+2aiaj=2∗len∗∑ai2+2∑a...原创 2018-11-01 21:53:23 · 221 阅读 · 0 评论