自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fau的博客

Fau的博客

  • 博客(340)
  • 收藏
  • 关注

原创 SPOJ-COT Count on a tree (静态树上第k小) 精讲

题目链接: Count on a tree大致题意给定一棵有nnn个节点的树, 节点上有权值wiw_iwi​. 有mmm次询问, 每次询问(a,b)(a, b)(a,b)最短路径上, 第kkk小的权值是多少.解题思路思路一: 树链剖分 + 主席树 + 树外二分/树内二分 复杂度: O(mlog3n)O(mlog^3n)O(mlog3n) / O(mlog2n)O(mlog^2n)O(mlog2n)这是一个静态树上路径求第kkk小的问题, 如果是在序列上, 我们不难想到用主席树可以做到O(logn

2021-11-20 14:13:13 636

原创 关于 高阶差分 及 高阶前缀和 总结

关于 高阶差分 高阶前缀和 总结这篇博客的来源是因为博主遇到了区间加等差数列的题目, 然后震惊的发现这居然算差分部分的知识, 由此感觉自己的基础知识真的好差QAQ.但是随着深入学习, 发现这部分知识居然是成一个体系的, 我在各大搜索平台上鲜见有大佬总结这部分内容, 因此借此博客把我的学习结果分享给大家.一、静态区间加等差数列这类题目算是基础题, 用到的知识为: 前缀和 差分.想必学过差分及前缀和的同学, 一定遇到过这样一道题:给定一个长度为nnn的序列, 执行mmm次操作, 每次给区间[l,

2021-10-18 10:27:22 1614 1

原创 关于求序列上各种第K小数的总结

关于第K小数的总结大前提题目叙述中若未指定n, m, q三个变量, 则默认n表示序列长度, m表示总操作次数(包括修改和查询), q表示询问总次数.一、静态整体第K小数大致题意给定一个长度为n的整数序列, 求序列中第k小的数字.解题思路时间复杂度: 多次询问O(nlogn) / 单次询问O(n) 空间复杂度: O(n)可以采用诸多复杂度为O(nlogn)的排序方法, 如快速排序, 归并排序等.如果只有一组询问, 还可以O(n)实现(可以使用库函数nth_element)二、动态

2021-01-12 00:12:06 876

原创 kuangbin线段树专题

写在前面的话博主也是个新手, 最近正在写kuangbin的线段树专题, 感觉整体线段树专题的难度也是从易到难的.但是的确在做题过程中遇到了 许多困难, 也学到了很多东西, 希望这些能帮到后来者.当然如果您有不同的见解, 或者发现了代码中的错误, 也希望您能提出我们一同探讨.关于个人写代码习惯:​ ①本人没有太多宏定义使用的习惯, 只有一个for循环的宏定义, 希望不会影响到大家的代码观感.​ ②本人写代码有压行的习惯. 因为希望自己写出的代码尽可能短以及利于自己理解.如果这篇博客帮助到了您,

2020-11-24 12:54:48 4437 7

原创 关于Jetbrains系列, 按tab补全时, 会覆盖后续内容的解决方法

这两天捣鼓了捣鼓VSCode, 发现设置里有一项选项, 这就令我回忆起了之前蛋疼的, 的使用, 因为补全的时候总是会覆盖掉我后面的内容, 导致我还得重新再打一遍.因此, 我打算探究一下系列软件是否有类似的选项.首先我尝试再次查看IDE配置, 未果. 于是转向搜索引擎🔍.在这篇文章中, 作者提到可以通过的方式进行不覆盖补全. 我试了一下, fail了, 我把快捷键配置改成默认配置, success了.因此我断定, 解决方法应该出现在的快捷键配置上.我分析配置后, 发现了通过和的补全区别如下:我把快捷键修改.

2022-07-06 14:30:23 1013 1

原创 2022东北四省赛 F. Tree Path (树剖 + 线段树维护堆)

题目链接: Tree Path大致题意给定一棵有nnn个节点的树, 其中有kkk条有权路径(保证不同路径边权互不相同), 有mmm次如下操作:0: 删除树中权值最小的路径1 x: 询问树中删除x节点后, 剩余连通边权中的最小值.解题思路相似题目参考本题的查询操作, 属于上题的强制在线版本, 因此我们可以用上题中类似的方式实现.推荐大家先去做上面这道题, 题解思路都详细一些. 做完后再回来看这道题, 你会发现处理手段几乎是一模一样的.首先我们考虑查询操作, 我们需要每次对删除节点x后的连通

2022-05-25 16:21:44 384 1

原创 P3250 [HNOI2016] 网络 (树剖 + 线段树维护堆)

题目链接: P3250 [HNOI2016] 网络大致题意给定一棵有nnn个节点的树, 有mmm次如下操作:0 a b c 表示在(a,b)(a, b)(a,b)的最短路径上增加一条重要度为ccc的边.1 t 表示删除第ttt次操作所增加的边2 x 表示节点xxx出现故障. 此时需要回答, 所有不经过xxx节点的边中最大的重要度.解题思路首先我们考虑查询操作, 我们需要每次对删除节点x后的连通路径上的最大边权.但本题我们可以把边权直接等价变为点权. 因此可以把查询操作变成查询最大点权.进

2022-05-25 15:44:03 332

原创 c++中的string类函数用法

string类:1. 初始化:string str = "123123"; string str("123123"); string str(char, count); //初始化count个char字符2. 常用函数:特别的:​ 1). 如果可操作的字符个数不足num个, 则会操作至串尾.​ 2). *count: 如果查找的内容为一个字符串, 则查找内容改为内容串的前count个字符. (感觉不常用, 就不写在表格了.)注: 表格中带*的为有默认填充值, npos表示unsigned

2022-05-16 21:57:52 1757 2

原创 Python round()函数避坑

研究主题: Python中的round()函数用法及结果Python版本信息:Python 3.10.2 (main, Feb 2 2022, 06:19:27) [Clang 13.0.0 (clang-1300.0.29.3)]IPython 8.2.0 – An enhanced Interactive Python. Type ‘?’ for help.输入 help(round)可以得到下列信息:Help on built-in function round in module bu

2022-04-20 18:42:01 1027 4

原创 2022 蓝桥杯省赛 C++ B组 解题代码

第十三届蓝桥杯省赛C++ B组题解随便聊聊前言: 本题解不保证代码正确, 主要提供一种博主在比赛过程中的做题思路, 仅供参考. 如果您对本文有什么看法, 欢迎大佬们评论区交流.本文首发于 2022.4.9试题 A: 九进制转十进制解题思路我们可以通过进制转换的通俗写法, 把(2022)9(2022)_9(2022)9​ 转化成10进制.或者, 直接计算 2∗90+2∗91+0∗92+2∗932 * 9^0 + 2 * 9^1 + 0 * 9^2 + 2 * 9^32∗90+2∗91+0∗92

2022-04-09 19:47:04 3947 15

原创 STL讲课讲义

C++部分基础 与 STL写在前面: 本文仅针对C++STL进行基础展开, 包含许多容器的基础用法 及 基础函数.额外的, 若无特殊说明, 文中涉及到的复杂度, 默认为时间复杂度, 且是均摊意义上的. 复杂度中的nnn默认为大小/长度, logloglog默认为log2log_2log2​, 其余变量均认为与nnn同阶.1. 引用 and 模版1). 引用&: 类似指针. 可以理解为给某个变量起了别名.特别的: 一旦引用某个变量后, 不可再修改(不同于指针).2). 模版类常规类变量

2022-02-07 11:23:13 367

原创 2018CCPC桂林站 G. Greatest Common Divisor (gcd 差分 质因数分解)

题目链接: Greatest Common Divisor大致题意给定一个长度为nnn的序列, 可以执行任意多次操作: 给所有位置的数值+1.问: 最少执行多少次操作, 使得gcd({a1,a2,...,an})≠1gcd(\{ a_1, a_2, ..., a_n \}) \ne 1gcd({a1​,a2​,...,an​})​=1. 若无解则输出−1-1−1.解题思路差分这类区间加 且 求gcdgcdgcd的题目, 我们比较容易的想到转化成差分的思路进行求解.对于本题而言, 每次是使区间

2022-01-24 15:01:11 441

原创 Codeforces126B Password (KMP)

题目链接: Password大致题意给定字符串sss, 求在串中出现过的最长的匹配的前后缀.串中出现: 表示出现非前缀且非后缀.解题思路kmp我们考虑对于长度为nnn字符串sss而言, 最长匹配的前后缀一定是next[n]next[n]next[n]. 但该子串并不一定在串中出现.有可能存在某个短一些的前后缀, 是符合要求的.首先考虑如何判断最长后缀是否合法我们不放统计[2,n)[2, n)[2,n)区间ne[]ne[]ne[]值的情况, 开一个桶cou[]cou[]cou[]进行记

2022-01-21 12:27:31 456

原创 AcWing4202 穿过圆 (树上最短路 / bitset优化暴力)

题目链接: 穿过圆大致题意给定nnn个点, mmm个圆. 保证每个点不会在圆边上, 且圆和圆之间不相交.有kkk次询问, 每次询问连线两个点a,ba, ba,b, 至少需要穿过多少个圆.解题思路思路一: 转化为树上最短路问题我们考虑到由于题目保证圆与圆不相交, 且点不在圆上. 那么如果我设全集为第m+1m+1m+1个圆, 则nnn个点必然都包含在m+1m+1m+1个圆之中.如果我们认为某个点ppp所属圆是: 包含点ppp, 且半径最小的. 则每个点也必然有一个所属圆.我们考虑每次询问两点a

2021-12-31 11:07:21 154

原创 AcWing4084 号码牌 (并查集 / bitset优化Floyd)

题目链接: 号码牌大致题意给定一个长度为nnn的序列, 第iii个位置的值为aia_iai​. (保证aaa是111~nnn的一个排列)每个位置还有一个值did_idi​, 若满足∣i−j=di∣|i-j=d_i|∣i−j=di​∣, 表示位置iii和位置jjj可以进行任意次交换.问: 能否使得最终的序列满足ai=ia_i = iai​=i.解题思路并查集 (数据太小了, 比赛时写了个Floyd)由于两个位置的交换次数是任意次. 因此, 如果xxx和yyy可以交换, 且yyy和zzz可以交换

2021-12-05 10:13:55 475

原创 Codeforces1609C Complex Market Analysis (思维)

题目链接: Complex Market Analysis大致题意给定一个长度为nnn的序列aaa. 给定间隔kkk.定义: f(i,j)f(i, j)f(i,j) 表示从位置iii开始, 选取元素ai,ai+k,ai+2k,...,ai+jka_i, a_{i + k}, a_{i + 2k}, ..., a_{i + jk}ai​,ai+k​,ai+2k​,...,ai+jk​ , 满足选取的所有元素的乘积为一个质数.问: 对于i,j∈[1,n]i, j \in [1, n]i,j∈[1,n].

2021-11-30 16:54:17 609

原创 P3250 [HNOI2016]网络 (整体二分 + 树上差分)

题目链接: P3250 [HNOI2016]网络大致题意给定一棵有nnn个节点的树, 有mmm次如下操作:0 a b c 表示在(a,b)(a, b)(a,b)的最短路径上增加一条重要度为ccc的边.1 t 表示删除第ttt次操作所增加的边2 x 表示节点xxx出现故障. 此时需要回答, 所有不经过xxx节点的边中最大的重要度.解题思路整体二分我们考虑到二分答案, 假设当前二分值为midmidmid, 我们把所有allallall条≥mid\ge mid≥mid的边加入, 判断对于xxx节点

2021-11-22 20:41:51 191

原创 P4175 [CTSC2008]网络管理 (动态树上第k大)

题目链接: P4175 [CTSC2008]网络管理大致题意给定一棵有nnn个节点的树, 节点上有权值wiw_iwi​. 有mmm次操作.0 a b 表示把节点aaa的权值修改为bbb. 即: wa=bw_a = bwa​=bk a b 查询(a,b)(a, b)(a,b)最短路径上, 第kkk大的值.解题思路➡️静态树上第kkk小⬅️点这里如果没有做过这个题的静态版本, ⬆️推荐博客⬆️. 下文讲解也会基于上述博客.很多静态树上第kkk小的做法也都适用于本题, 可以参考上述博客, 本文只

2021-11-20 18:38:13 367

原创 HDU4638 Group (莫队 / 询问离线+线段树)

题目链接: Group大致题意有一个长度为nnn的111~nnn排列, 保证序列中没有相同的元素. 有mmm次询问, 每次询问[l,r][l, r][l,r]中所有的元素可以分成多少个不相交的线段.解题思路解法一: 莫队我们考虑用莫队去维护[l,r][l, r][l,r]的信息. 设当前位置为pospospos, 元素值为valvalval. 如果val+1val + 1val+1和val−1val - 1val−1均出现过, 则答案−1-1−1. 否则, 若二者均未出现, 则答案+1+1+1.

2021-11-17 08:54:52 422

原创 Codeforces940F Machine Learning (带修莫队)

题目链接: Machine Learning大致题意给定一个长度为nnn的序列, 第iii个元素为wiw_iwi​.有两种操作:1 l r 定义cic_ici​为出现次数为iii次的数字个数. 查询[l,r][l, r][l,r]的mex({c0,c1,..,c109})mex(\{ c_0, c_1, .., c_{10^9}\})mex({c0​,c1​,..,c109​}).2 a c 把序列aaa位置的数字修改为ccc.解题思路带修莫队 这不是带修莫队裸题吗?我们考虑开一个桶统计每个

2021-11-15 22:15:04 1133

原创 Codeforces1607C Minimum Extraction (思维)

题目链接: Minimum Extraction大致题意给定一个长度为nnn的序列, 第iii个元素为aia_iai​.每次操作选择出序列中最小的元素, 然后移除该元素, 并使得序列中剩余所有元素的值都减去该元素值. (当序列长度为111时, 不可再进行操作)问: 你可以执行任意次操作, 输出序列中最小元素的最大值.解题思路思维 这不是线段树板子题? 关于DS选手想了一会儿没思路打了个线段树上去这件事.jpg我们考虑到如果对于整个序列进行从小到大排序, 每次操作后, 整个序列的相对大小其实是不

2021-11-15 20:20:28 719

原创 HDU7136 Jumping Monkey (点分治 + 树状数组)

题目链接: Jumping Monkey大致题意给定一个有nnn个节点的树, 每个节点有一个权值wiw_iwi​(保证点权两两不同). 节点aaa可以移动到节点bbb, 当且仅当wbw_bwb​是(a,b)(a, b)(a,b)最短路径上权值最大的点.问: 当分别以k (k∈[1,n])k \ (k \in [1, n])k (k∈[1,n])为起始点, 最多能到达多少个不同的点.解题思路点分治 + BIT本题解就当存一份代码吧, 隔得太久了, 已经忘了当时比赛的时候是怎么想

2021-11-15 19:37:11 643

原创 Codeforces915E Physical Education Lessons (珂朵莉树)

题目链接: Physical Education Lessons大致题意给定一个长度为nnn的010101序列, 有两种操作: 把区间[l,r][l, r][l,r]全部变为111, 或把区间[l,r][l, r][l,r]全部变为000.每次操作结束后, 输出序列中111的个数.解题思路珂朵莉树这不是珂朵莉树板子题吗? 我们只需要实现珂朵莉树的区间推平即可.值得一提的是, 每次的查询, 我们可以通过维护一个变量sumsumsum的方式来做到O(1)O(1)O(1)查询.否则如果每次遍历完整

2021-11-15 18:46:56 289

原创 Codeforces915E Physical Education Lessons (线段树 + 区间离散化)

题目链接: Physical Education Lessons大致题意给定一个长度为nnn的010101序列, 有两种操作: 把区间[l,r][l, r][l,r]全部变为111, 或把区间[l,r][l, r][l,r]全部变为000.每次操作结束后, 输出序列中111的个数.解题思路➡️题目弱化版推荐⬅️线段树我们考虑到如果nnn比较小(在10610^6106以内), 我们可以直接用线段树暴力维护区间信息.但是本题的nnn很大(有10910^9109), 我们没法通过堆存储的方式用静

2021-11-15 18:15:52 452 3

原创 P3674 小清新人渣的本愿 (莫队 + bitset)

题目链接: P3674 小清新人渣的本愿大致题意给定一个长度为nnn的序列, 有mmm次询问操作.1 l r x 表示询问[l,r][l, r][l,r]是否存在a−b=xa - b = xa−b=x (a,ba, ba,b可以是同一位置的数字)2 l r x 表示询问[l,r][l, r][l,r]是否存在a+b=xa + b = xa+b=x (a,ba, ba,b可以是同一位置的数字)3 l r x 表示询问[l,r][l, r][l,r]是否存在a×b=xa \times b = xa×b

2021-11-12 10:09:43 164

原创 P4137 Rmq Problem / mex (三种解法: 权值线段树+询问离线 / 可持久化线段树 / 莫队+值域分块)

题目链接: P4137 Rmq Problem / mex大致题意给定一个长度为nnn的序列, 有mmm次询问操作.每次询问[l,r][l, r][l,r]区间的mexmexmex是多少.解题思路解法一: 权值线段树 + 询问离线我们考虑把所有的询问按照右端点rrr从小到大排序, 用权值线段树维护[1,r][1, r][1,r]区间中所有数值最后一次出现位置的最小值.对于询问区间[l,r][l, r][l,r], 我们在树上进行二分, 如果当前值域左区间的最小出现位置要小于lll, 则访问左区

2021-11-11 19:03:14 419 1

原创 P4396 [AHOI2013]作业 (莫队 + 值域分块)

题目链接: P4396 [AHOI2013]作业大致题意给定一个长度为nnn的序列, 有mmm次询问, 每次询问给出l r a b.表示询问在区间[l,r][l, r][l,r]内, 值域[a,b][a, b][a,b]之间有多少个数值, 以及有多少个不同数值.解题思路莫队 + 值域分块我们通过莫队做到O(n)O(\sqrt{n})O(n​)维护[l,r][l, r][l,r]的所有数值信息, 在查询时, 通过分块来做到O(n)O(\sqrt{n})O(n​)的查询.➡️同类题目推荐⬅️AC

2021-11-11 17:33:40 212

原创 HDU6959 zoto (莫队 + 值域分块)

题目链接: zoto大致题意给定一个长度为nnn的序列, 有mmm次询问, 每次询问给出l a r b.表示询问在区间[l,r][l, r][l,r]内, 值域[a,b][a, b][a,b]之间有多少个不同数值.和原题叙述略有不同, 但是本质是这样.解题思路莫队 + 值域分块我们考虑要得到区间[l,r][l, r][l,r]的信息, 我们可以通过莫队来实现O(n)O(\sqrt{n})O(n​)的修改, O(1)O(1)O(1)的查询.本题需要统计某个值域范围内有多少个不同的数值. 如

2021-11-11 16:51:20 153

原创 2021ICPC江西省赛 Magic Number Group (普通莫队/回滚莫队 维护区间众数)

题目链接: Magic Number Group大致题意给定一个长度为nnn的序列, 有mmm次询问.每次询问[l,r][l, r][l,r]中, 有相同公共质因子的最大数量.解题思路莫队考虑到值域范围只有10610^6106, 因此对于每个数的不同质因子数量最多只有888个.2×3×5×7×11×13×17>1062 \times 3 \times 5 \times 7 \times 11 \times 13 \times17 > 10^62×3×5×7×11×13×17&gt

2021-11-11 15:40:10 378

原创 HDU4718 The LCIS on the Tree (树链剖分 线段树区间合并)

题目链接: The LCIS on the Tree大致题意给定一棵有nnn个节点的树, 有mmm次询问, 每次询问(a,b)(a, b)(a,b)两点间的最短路径上的最长连续严格递增子序列.解题思路➡️题目弱化版点这里⬅️如果你没有做过序列上的LCIS, 推荐先做一下题目的弱化版树链剖分我们通过树剖将树上路径问题转化为一段段区间问题. 而难点在于树链与树链间的合并.由于树链上的区间是有方向的, 当我们最后合并两条链时, 我们需要将左链翻转, 如果在树中仅维护LCIS的信息, 我们是无法得

2021-11-10 14:21:48 321

原创 HDU3308 LCIS (线段树区间合并)

题目链接: LCIS大致题意给定一个长度为nnn的序列. 有mmm次操作:U a c 把第aaa个位置的数字修改为ccc.Q l r 询问[l,r][l, r][l,r]的最长连续严格递增子序列(下文用LCIS代替).特别的, 题目下标从000开始.解题思路线段树 (超经典, 在做树上LCIS时过来验了下pushup)我们可以通过线段树的区间合并来解决本类题目:考虑当前有两个区间left,rightleft, rightleft,right. 设合并后的新区间为resresres.那

2021-11-10 09:23:40 334

原创 HDU6562 Lovers (线段树 懒标记下放)

题目链接: Lovers大致题意给定nnn个字符串, s1,s2,…,sns_1, s_2, …, s_ns1​,s2​,…,sn​ 初始均为空串.有mmm次如下操作:warp l r d: 其中ddd是一个数字字符, 表示对s[l:r]s[l:r]s[l:r]的所有字符串开头和结尾都加上字符ddd.query l r 询问∑i−lrvalues(si)\displaystyle \sum_{i - l}^{r}values(s_i)i−l∑r​values(si​). 其中values(str)

2021-11-09 20:26:30 86

原创 Codeforces540E Infinite Inversions (区间离散化 + 树状数组求逆序对)

题目链接: Infinite Inversions大致题意给定一个无限长的序列p=1,2,3,...p = { 1, 2, 3, ... }p=1,2,3,..., 有mmm次操作, 第iii次交换(ai,bi)(a_i, b_i)(ai​,bi​)两个位置的元素.问: 完成mmm次交换后, 序列中有多少个逆序对.解题思路思维 + 树状数组我们考虑到, 其实没有被交换过的位置, 我们可以通过线段缩点的方式, 把一个线段变成一个孤立点.即: 对于每段线段, 我们存储其左端点 和 线段长度. (

2021-11-09 10:24:34 164

原创 HDU6962 I love tree (树链剖分)

题目链接: I love tree大致题意给定一棵有nnn个节点的树, 初始树中的各个节点权值为000. 有mmm次如下操作:1 a b给(a,b)(a, b)(a,b)路径加上一个平方数列1,4,9,...1, 4, 9, ...1,4,9,...2 x询问编号为xxx的点的权值.解题思路树链剖分我们首先考虑对于一个序列加平方数列的操作.我们发现就是 ➡️这个题⬅️我们考虑对于树链上的操作: 比较容易想到可以通过树剖把树上问题转化为区间问题.由于树链上的编号是一段一段的, 并不连续,

2021-11-07 16:49:01 138 3

原创 SP6779 GSS7 - Can you answer these queries VII (树链剖分 树链信息合并)

题目链接: SP6779 GSS7 - Can you answer these queries VII大致题意给定一棵有nnn个节点的树, 每个节点上有权值wi(∣wi∣≤10000)w_i(|w_i| \le 10000)wi​(∣wi​∣≤10000). 有mmm次操作:1 a b 查询(a,b)(a, b)(a,b)路径上的最大连续子段和.2 a b c把(a,b)(a, b)(a,b)路径上的所有点权修改为ccc.解题思路树链剖分我们考虑如果这不是一个树上问题, 而是对序列进行操作.

2021-11-05 15:21:26 156 2

原创 P1505 [国家集训队]旅游 (树链剖分)

题目链接: P1505 [国家集训队]旅游大致题意给定一棵nnn个节点的树, 边带权, 编号 000 ~ n−1n - 1n−1, 需要支持五种操作:C i w 将输入的第iii条边权值改为wwwN u v 将u,vu, vu,v节点之间的边权都变为相反数SUM u v 询问u,vu, vu,v节点之间边权和MAX u v 询问u,vu, vu,v节点之间边权最大值MIN u v 询问u,vu, vu,v节点之间边权最小值保证任意时刻所有边的权值都在 [−1000,1000][-1000,

2021-11-05 14:51:55 134

原创 P3401 洛谷树 (树链剖分) 好题

题目链接: P3401 洛谷树大致题意给定一棵有nnn个节点的树, 每条边有边权wiw_iwi​. 有mmm次如下操作:1 a b 询问a,ba, ba,b路径上, 所有子路径边权异或和的和.2 a b c把(a,b)(a, b)(a,b)这条边的权值修改为ccc.特别的, 每一时刻树中边权均∈[0,1023]\in[0, 1023]∈[0,1023]解题思路思维首先对于树上问题, 我们考虑化为序列问题求解.我们发现并不好在10进制下处理出所有区间异或和. 因此考虑拆位.到此, 我

2021-11-03 16:58:11 360

原创 P5838 [USACO19DEC]Milk Visits G (树链剖分 + 主席树)

题目链接: P5838 [USACO19DEC]Milk Visits G大致题意给定一棵有nnn个节点的树, 每个节点有权值wiw_iwi​, 有mmm次询问:a b c 询问a,ba, ba,b路径上是否有wi==cw_i == cwi​==c的节点.解题思路树链剖分 + 主席树我们首先考虑如果不是树上路径问题, 而是询问[l,r][l, r][l,r]区间中, 是否有wi==cw_i == cwi​==c的点.我们可以采用可持久化线段树来实现.对于树上路径问题, 我们加上树链剖分即可.

2021-11-02 19:20:53 128

原创 P3979 遥远的国度 (树链剖分)

题目链接: P3979 遥远的国度大致题意给定一棵有nnn个节点的树, 根节点为rootrootroot, 有如下三种操作:1 rt 把根节点修改为rtrtrt. (即: root=rtroot = rtroot=rt)2 a b c把a,ba, ba,b两点间的所有点的权值修改为ccc.3 x 查询以rootrootroot为根时, xxx子树中的最小值解题思路树链剖分我们如果考虑没有换根操作, 本题实质上就是路径修改 + 子树查询, 我们直接套树链剖分板子即可.考虑到多了一个换根操作,

2021-11-02 19:05:14 110

原创 P4374 [USACO18OPEN]Disruption P (树链剖分)

题目链接: P4374 [USACO18OPEN]Disruption P大致题意给定一棵有nnn个节点的树(有n−1n - 1n−1条边), 再给出mmm条额外边.问: 当删除第iii条原树中的边时, 为使得树仍然联通, 需要补充的最小的额外边的边权是多少. (若不存在则输出-1)解题思路思维我们考虑到, 由于原树中有n−1n - 1n−1条边, 那么我每条额外边的加入, 都会在原树中形成一个环.对于一个环而言, 我删掉环中的任意一条边, 环内的点必然仍然连通.因此相当于, 第iii条连接

2021-11-02 18:49:46 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除