
线段树
文章平均质量分 60
实现区间的各种操作
李峻枫
这个作者很懒,什么都没留下…
展开
-
L - 芜湖塔台请求起飞
L - 芜湖塔台请求起飞题目大意给出一棵大小为nnn的树,有如下操作:更改一个节点的权值查询从x到y路径上的权值和查询从x到y路径上的最大权值题解如果是在一个序列中,上面的操作非常容易用线段树来完成,但是在树上并不能。于是就要想一个办法使得树变成一个序列。很显然,就是树链剖分。利用倍增求LCA,然后分别就是从x到LCA与从y到LCA的答案。修改操作就直接在线段树上完成。时间复杂度线段树上一次查询的复杂度是O(logn)O(\log n)O(logn)的,因为重边是连在dfn原创 2021-10-07 08:12:13 · 410 阅读 · 0 评论 -
A - 大佬集中营
A - 大佬集中营题目大意给定一个序列,每次询问某个区间中的数,能分成最少多少个集合,每个集合中出现次数最多的次数不能超过集合大小的一半(上取整)。而且每个集合的大小尽可能大。题解不难发现,一个区间里的所以数,一定都是会被分配完的,只有因为一个数的集合也是满足题意的。接下来,最关键的一步,就是发现答案与区间众数的关系:如果该区间的众数,都没有超过一半,那很显然,只需要分成一组当其众数超过一半了,则不妨假设众数为k,答案就是2×k−(r−l+1)2 \times k - (r - l + 1)原创 2021-06-05 22:57:25 · 247 阅读 · 0 评论 -
JZOJ5678. 【GDOI2018Day2模拟4.21】果树
DescriptionNiroBC 姐姐是个活泼的少女,她十分喜欢爬树,而她家门口正好有一棵果树,正好满足了她爬树的需求。 这颗果树有N个节点,节点标号 1…N。每个节点长着一个果子,第i个节点上的果子颜色为 Ci 。 NiroBC姐姐每天都要爬树,每天都要选择一条有趣的路径 (u,v) 来爬。 一条路径被称作有趣的,当且仅当这条路径上的果子的颜色互不相同。 (u,v) 和 (v,u)...原创 2018-04-27 14:59:48 · 459 阅读 · 0 评论 -
JZOJ3338. 【NOI2013模拟】法法塔的奖励
Description法法塔是很喜欢写程序的。所以冒着就算码农屌丝一辈子的风险也大无畏地写着程序。 码农们为了表彰法法塔的坚持与执着,决定给法法塔颁布奖励,为了体现码农的屌丝气质,奖励也将由法法塔自己做出选择! 所有的奖励被组织成了一棵树的形态,每个点都有一个权值。法法塔首先选择一个子树,然后选择从该子树内的一个叶子节点到该子树的根的一条路径,将路径上节点的权值依次排成一个序列,求得这个序...原创 2018-07-11 21:12:23 · 420 阅读 · 0 评论 -
JZOJ5807. 【NOIP提高A组模拟2018.8.13】简单的区间
Data Constraint对于 30% 的数据,n ≤ 3000; 对于另外 20% 的数据,数列 a 为随机生成; 对于 100% 的数据,1 ≤ n ≤ 3 × 10^5 , 1 ≤ k ≤ 10^6 , 1 ≤ ai ≤ 10^9。题解很容易想到一种类似分治的做法, 每次在区间[l,r]中,找出最大值的位置id, 将最大值左右两边,跨过最大最的统计答案, 然...原创 2018-08-14 11:36:50 · 403 阅读 · 0 评论 -
JZOJ5783. 【省选模拟2018.8.8】树
题目 题目大意给定一棵树,每个点都有一个权值, 现在有三种操作,换根,给一个子树里面的所有点加一个值,查询子树内的权值和。题解先看没有换根操作,这个就很简单了, dfs序加上线段树,轻松解决。再来看看多了换根的操作, 换了根之后,它的子树与在没有换根之前,也就是1为根有什么区别, 分类讨论一下, 假设这个节点x是属于root的子树,那么它的子树根原来的是一模...原创 2018-08-08 21:42:10 · 209 阅读 · 0 评论 -
JZOJ4724. 【NOIP2016提高A组模拟8.21】
DescriptionDJL为了避免成为一只咸鱼,来找czgj学习Fibonacci数列。 通过czgj的谆谆教导,DJL明白了Fibonacci数列是这样定义的: F(1)=1;F(2)=1;F(n)=F(n-1)+F(n-2)(n>2) Czgj深谙熟能生巧的道理,于是他给了DJL一个数列,并安排了如下的训练计划: 1、“1 L r”,表示给ai 加上F(i-L+1) ,其中...原创 2018-08-22 22:40:32 · 392 阅读 · 0 评论 -
JZOJ5850. 【NOIP提高组模拟2018.8.25】e
题解先看看k个点构成的最小连通块是什么, 就是从每个点出发,到他们所有点公共的lca的所有链组成。 再考虑在一个序列上面如何在线求到某个数最近的数, 就是建一棵权值线段树,然后在这个数的左边找最大的,在右边找最小的。 有了上面这个想法,那么剩下的就简单了, 每个节点以它的父亲为历史版本建一棵新的权值线段树, 查询的时候,就直接用两棵权值线段树减一下就好了。code...原创 2018-08-25 16:08:36 · 172 阅读 · 0 评论 -
JZOJ5866. 【NOIP2018模拟9.13】指引
题解就是要求,一个点,在他的右上角,有没有一个可以跟他匹配的点,求最大的匹配数。像这种二维偏序问题,就先对一维进行排序,然后用数据结构维护另一维。code#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <...原创 2018-09-18 21:57:47 · 278 阅读 · 0 评论 -
JZOJ5871. 【NOIP2018模拟9.15】挑战
题解用sns_nsn表示前n项的前缀和,那么现在就是要求满足si=2ais_i=2a_isi=2ai的最小的i。考虑一次修改操作对原来的答案ans有什么影响,如果修改的位置,在ans之后,那就没有什么影响,如果修改的答案在ans之前,那么修改之后的答案一定是在修改的这个位置之后。考虑一个问题,假设现在在x点,而且在x之前是没有出现满足要求的i,考虑下一个可能满足要求的位置在哪...原创 2018-09-18 22:25:44 · 215 阅读 · 0 评论 -
JZOJ5879. 【NOIP2018提高组模拟9.22】电路图 B
题解首先回忆一下初中物理知识,两个电阻R1,R2R_1,R_2R1,R2并联的后的电阻R1∗R2/(R1+R2)R_1*R_2/(R_1+R_2)R1∗R2/(R1+R2)考虑如何实现这个线段树标记,如果是串联,就是直接加,非常方便。但是标记要合并,要将两种标记实现合并,设一个标记为(a,b,c,d)一个四元组。表示x在这个标记之下变为了x∗(ax+b)/(cx+d)...原创 2018-09-26 22:11:40 · 239 阅读 · 0 评论 -
JZOJ5908. 【NOIP2018模拟10.16】开荒(kaihuang)
Description题目背景:尊者神高达作为一个萌新,在升级路上死亡无数次后被一只大黄叽带回了师门。他加入师门后发现有无穷无尽的师兄弟姐妹,这几天新副本开了,尊者神高达的师门作为一个 pve师门,于是他们决定组织一起去开荒。题目描述:师门可以看做以 1 为根的一棵树,师门中的每一个人都有一定的装备分数。一共会有 q 个事件。每个事件可能是一次开荒,也可能是因为开荒出了好装备而导致一个人的...原创 2018-10-17 22:21:13 · 283 阅读 · 0 评论 -
JZOJ5947. 【NOIP2018模拟11.02】初音未来(miku)
DescriptionHercier作为一位喜爱Hatsune Miku的OIer,痛下决心,将Vocaloid买回了家。打开之后,你发现界面是一个长为n的序列,代表音调,并形成了全排列。你看不懂日语,经过多次尝试,你只会用一个按钮:将一段区间按升序排序。不理解音乐的Hercier决定写一个脚本,进行m次操作,每次对一段区间进行操作。可惜Hercier不会写脚本,他找到了在机房里的你,请你模拟出...原创 2018-11-03 09:51:14 · 354 阅读 · 0 评论 -
JZOJ5943. 【NOIP2018模拟11.01】树
Data Constraint对于前 30% 的数据, n, q ≤ 100;对于另 20% 的数据, 没有操作 1;对于另 20% 的数据, 没有操作 3;对于 100% 的数据, n, q ≤ 10^5, ai ≤ 10^9, k ≤ 2^30, 1 ≤ l ≤ r ≤ n.题解题目的意思就是要维护一个序列,而且还有修改操作。最简单的是第二个操作,直接就线段树解决,接下来在考...原创 2018-11-02 15:45:11 · 210 阅读 · 0 评论 -
JZOJ5710. 【北大夏令营2018模拟5.13】Mex
Description在组合游戏中计算状态的 SG 值时,我们常常会遇到 mex 函数。mex(S) 的值为集合 S 中没有出现过的最小自然数。例如,mex({1,2}) = 0、mex({0,1,2,3}) = 4。 给定长度为 n 的序列 a。现有 m 次询问,每次给定 l 和 r,询问区间 [l,r] 的数构成的集合的 mex 值。Input输入数据的第一行包含三个整数 n...原创 2018-05-17 15:56:12 · 308 阅读 · 0 评论 -
JZOJ5662. 【GDOI2018Day1模拟4.17】尺树寸泓
题目大意给出一棵二叉树, 有左旋和右旋操作, 询问某个点子树的size的乘积。题解平衡树有一个很重要的性质: 无论怎样旋转,这棵树的中序遍历是一定不会变的。 而一个节点的子树在中序遍历里面是连续的一段, 也就是要求中序遍历中间某一段连续的size的乘积。而每次旋转操作,无论左旋还是右旋,都只会改变两个点, 每次旋转的时候就修改两个点的size,左右儿子,...原创 2018-04-23 11:25:56 · 246 阅读 · 0 评论 -
JZOJ100041. 【NOIP2017提高A组模拟7.12】列车调度
分析我们可以知道,如果最后的顺序是n、n-1、…、1 那么没有条轨道的序号一定是大到小的。 很自然地可以想到用权值线段树来维护, 每次加入一个新的列车,就在线段树里面找出第一个比它大的 然后就将这个列车加入到这条轨道。 如果找不到比它大的,就新开一条轨道。通过观察发现,每条轨道的第一个组成了原序列的最长上升子序列。 也就是说我们最需要求出最长上升子序列就可以得出答案了。code#incl原创 2017-07-12 20:30:13 · 1693 阅读 · 0 评论 -
JZOJ100045. 【NOIP2017提高A组模拟7.13】好数
Description我们定义一个非负整数是“好数”,当且仅当它符合以下条件之一: 1.这个数是0或1 2.所有小于这个数且与它互质的正整数可以排成一个等差数列例如,8就是一个好数,因为1,3,5,7排成了等差数列。 给出N个非负整数,然后进行如下三个操作: 1.询问区间[L,R]有多少个好数 2.将区间[L,R]内所有数对S取余(S≤1000000) 3.将第C个数更改为X分析首先我们原创 2017-07-13 21:34:36 · 469 阅读 · 0 评论 -
JZOJ5361. 【NOIP2017提高A组模拟9.14】捕老鼠
Description为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里的仓库灭灭鼠。于是,猫被农夫约派去捕老鼠。 猫虽然擅长捕老鼠,但是老鼠们太健美了,身手敏捷,于是猫想到了一个绝妙的办法:它决定点燃纯艾条,用烟熏老鼠。 农夫约的农庄里有N 个仓库,排成了一排,编号为1~N。 假设猫在第i 个仓库点燃艾条,烟雾就会充满该仓库,并向左右扩散Ai的距离,接着所有|i-j原创 2017-09-15 22:37:32 · 463 阅读 · 0 评论 -
JZOJ5456. 【NOIP2017提高A组冲刺11.6】奇怪的队列
nodgd的粉丝太多了,每天都会有很多人排队要签名。今天有原创 2017-11-06 22:13:10 · 421 阅读 · 0 评论 -
JZOJ5409. 【NOIP2017提高A组集训10.21】Fantasy
DescriptionY sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。InputN K LR A1 A2 … ANOutput输出一行一个整数原创 2017-10-22 08:15:01 · 395 阅读 · 0 评论 -
JZOJ5463. 【NOIP2017提高A组冲刺11.8】证书
DescriptionPulumi生活在P城的角落,而他的朋友们gjdy,oyski,tutuwai等等生活在P城的靠中心位置。 P城很大,但它拥有优秀的城市结构,同时P城重视文化教育的发展,P城共有n个学校,校与校之间共建立了n-1条交通线路,且两所学校之间存在唯一的连通路径。 P城常常举行各种类型的评比活动,为了节约资金,最终将给某一条路径上的所有学校颁发证书。为了便于描述我们记一次评比活动原创 2017-11-09 20:47:51 · 266 阅读 · 0 评论 -
JZOJ5419. 【NOIP2017提高A组集训10.24】筹备计划
Description题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典。 学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[1,n]的整数位置上。 老师们选择的地点是会根据参加典礼的学生位置来决定的,具体来说:定义一个位置的距离和为该位置到所有参加学生的距离之原创 2017-10-25 08:22:57 · 517 阅读 · 0 评论 -
JZOJ5489. 【清华集训2017模拟11.28】海明距离
Description设有一长度为n的初始每个位置均为0的序列A。再给定一个长度为n的01序列B。 有Q个特殊的区间[li,ri],你可以选择将A中li到ri这些位置都变为1,当然你可以选择不变。 现在你需要最小化A,B的海明距离。即最小化对应数值不同的位置数目。Input第一行包括一个整数n。 接下来一行n个整数,描述序列B。 输入一行一个整数Q。 接下来Q行,每行两个整数li,ri 。原创 2017-12-08 22:03:02 · 480 阅读 · 0 评论 -
【NOIP2017提高组正式赛】D2T3列队
Sylvia 是一个热爱学习的女孩子。 前段时间,Sylvia 参加了学校的军训。众所周知,军训的时候需要站方阵。 Sylvia所在的方阵中有n × m名学生,方阵的行数为 n,列数为 m。 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中从 1 到 n × m 编上了号码(参见后面的样例)。即:初始时,第 i 行第 j 列的学生的编号是(原创 2017-11-22 22:41:27 · 1075 阅读 · 0 评论 -
JZOJ3815. 【NOIP2014模拟9.7】克卜勒
Description一闪一闪亮晶晶/好像你的身体/藏在众多孤星之中/还是找得到你/挂在天上放光明/反射我的孤寂/提醒我/我也只是一颗寂寞的星星/oh~/浩瀚的世界里/更迭的人海里/和你互相辉映/而我们连续/连接所有思念/唱一首歌给你/给你Zyh在浩瀚的宇宙中发现了一个神奇的星系。这个星系上很可能有文明的痕迹,因为它的星球的连接方式非常特别。 具体的来说整个星系由若干个小星系组成,这若干个小星系是原创 2018-02-04 15:27:01 · 372 阅读 · 0 评论 -
JZOJ5646. 【NOI2018模拟4.12】染色游戏
题目 题目大意给出aiaia_i,要求从中选择一些aiaia_i出来,可以不选(一定要注意) 使得这些aiaia_i是严格上升。 对于每一段连续的空位,都要付出一些代价。 要求最大化选出来的aiaia_i之和减去总代价。题解一种n2n2n^2的做法, 设fifif_i表示aiaia_i必选的最大答案。 fi=maxfj+(i−j∗(i−j−1)/2+ai(aj<...原创 2018-04-14 22:09:14 · 408 阅读 · 0 评论 -
JZOJ5620. 【NOI2018模拟4.1】修炼
题目 题解很自然的想法,首先一定会按照didid_i排序。 设fifif_i表示前i个物品,第i个物品一定购买的时候最大的魂力。 转移的时候,就枚举上一个购买的物品j, 计算这一段时间j物品的收益。 fi=fj+(di−dj−1)∗gj+rjfi=fj+(di−dj−1)∗gj+rjf_i=f_j+(d_i-d_j-1)*g_j+r_j 这样子是O(n2)O(n2)O(n^...原创 2018-04-10 21:45:08 · 187 阅读 · 0 评论 -
JZOJ5608. 【NOI2018模拟3.28】Subset
题目Data Constraint对于 10% 的数据满足 n ≤ 20 对于 30% 的数据满足 n ≤ 2000 另有 20% 的数据满足 a i = b i 对于 100% 的数据满足 n ≤ 100000题解可以知道S最大只有3, 即a,b,c的最大值分别占一列, 再多一列,上面没有最大值,那么对答案也没有影响。分类讨论 1、S的大小为1,很显然有n...原创 2018-03-29 17:10:59 · 299 阅读 · 0 评论 -
JZOJ1728. Antimonotonicity
题目Description给你1-N的一个排列,数列中的数字互不相等,要求找出最长的子序列a,满足a1 > a2,a2 < a3,a3 > a4,a4 < a5……InputT 代表T组数据 T<=50 每组数据一行: n 代表给你n个数,然后就是n个数 N<=30000OutputT行 每行一个数: 对于每组数据输出最长子序列的长度Sample Input45 1 2 3 4 55 5 4原创 2016-07-14 12:12:03 · 2571 阅读 · 0 评论