题目链接: [WC2018]即时战略 题目大意:给一棵结构未知的树,初始时除1号点其他点都是黑色,1号点是白色,每次你可以询问一条起点为白色终点任意的路径,交互库会自动返回给你这条路径上与起点相邻的节点并且如果这个点为黑色则将它变为白色,要求在不多于给定次数的询问内使所有点变为白色. 大致思路为按一定顺序分别将n-1个点变为白点,为了防止被卡,需要对2~n的序列随机打乱再按打乱后的顺序逐个变白. 数据范围分为三种,分开讲解(假设当前要变白的点为x): 一.完全二叉树 这一部分比较简单,我们只需要…
LOJ 思路 考虑最蠢的暴力:枚举2~n,从1拉一条到他们的链,需要查询\(n^2\)次,显然不能通过. 考虑优化:如果拉的第一个点已经被访问过了,那么类似二分的做法,一次往那个方向多跳几步. 多跳几步?那就动态点分治吧.每次最多跳\(\log n\)次就一定可以找到一个点使得它到你现在枚举的点的路径全都没有访问过,然后一次把这上面的点全都explore一边即可. 然而,树的形态你不知道,怎么动态点分治? 那就动态动态点分治啊2333 类似替罪羊树的思想,加点时直接连上去,每当某个节点\(u\)…
意外的好写..... 考虑点分 \(dis(i, j) \leq r_i + r_j\) 对于过分治中心一点\(u\),有 \(dis(i, u) - r_i = dis(j, u) + r_j\) 对于同一子树内需要去重 原本是考虑用值域线段树来维护的,看了看\(10^9\)的范围,空间估计开不下 那就用平衡树吧... 用动态点分来维护答案,每次默认把\(i\)归到父亲的分治结构中 如果某个分治结构过于不平衡,那么就暴力重构 注意一下,一个点分治中的分治结构在树中对应一个联通块,没有任何其他的…
传送门(权限) 传送门(非权限) 题解 我终终终终终终于做出来啦!!! 作为一个没有学过替罪羊树的蒟蒻现场学了一下替罪羊树,作为一个平衡树都写数组版本的看着大佬的指针题解无语只能硬去理解然后照着抄了一波指针 然后怎么做呢? 先把题设式子变形一下$$dist(i,j)\leq r_i+r_j$$ $$dist(i,LCA)+dist(LCA,j)\leq r_i+r_j$$ $$r_i-dist(i,LCA)\geq dist(j,LCA)-r_j$$ 然后我们在每一个点开两棵平衡树,分别维护以$…
题目:http://uoj.ac/problem/55 https://www.luogu.org/problemnew/show/P3920 参考博客:https://www.cnblogs.com/Khada-Jhin/p/10078584.html 于是写了替罪羊树,但无论怎么调参都会T,UOJ上是80分. 别忘记给 vis 赋值!!! 更新答案和更新点分树一起做会错?总之分开写了: 注意空间. 代码如下: #include<cstdio> #include<cstring>…
「WC2018即时战略」 题目描述 小 M 在玩一个即时战略 (Real Time Strategy) 游戏.不同于大多数同类游戏,这个游戏的地图是树形的.也就是说,地图可以用一个由 \(n\) 个结点,\(n - 1\) 条边构成的连通图来表示.这些结点被编号为 \(1 \sim n\). 每个结点有两种可能的状态:"已知的"或"未知的".游戏开始时,只有 \(1\) 号结点是已知的. 在游戏的过程中,小 M 可以尝试探索更多的结点.具体来说,小 M 每次操作时需…
题目描述 给你一棵 $n$ 个点的树,边有边权.$m$ 次询问,每次给出 $l$ .$r$ .$x$ ,求 $\text{Min}_{i=l}^r\text{dis}(i,x)$ . $n,m\le 10^5$ . 题解 动态点分治+线段树 分块做法太傻逼了我们把它丢到垃圾桶里.树上距离考虑动态点分治. 求出这棵树的点分树,对每一棵点分树子树开一棵动态开点编号线段树,维护编号在某区间内的点到当前点距离的最大值. 对于一次查询,我们在点分树从 $x$ 到根的路径上所有点对应的线段树上查询 $[l,…
题目描述 给一颗n个节点的树,边权均为1,初始点权均为0,m次操作:Q x:询问x的点权.M x d w:将树上与节点x距离不超过d的节点的点权均加上w. 输入 第一行两个正整数:n,m接下来的n-1行,每行三个正整数u,v,代表u,v之间有一条边.接下来的m行,每行给出上述两种操作中的一种. 输出 对于每个Q操作,输出当前x节点的皮皮鼠数量. 样例输入 7 6 1 2 1 4 1 5 2 3 2 7 5 6 M 1 1 2 Q 5 M 2 2 3 Q 3 M 1 2 1 Q 2 样例输出 2…
题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i].不幸的是,这片土地常常发生地震,并且随着时代的发展,城市的价值也往往会发生变动.接下来你需要在线处理M次操作:0 x k 表示发生了一次地震,震中城市为x,影响范围为k,所有与x距离不超过k的城市都将受到影响,该次地震造成的经济损失为所有受影响城市的价值和.1 x y 表示第x个城市的价值变成了y.为了体现程序的在线性,操作中的x.y.k都需要异或你程序…
题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每个时刻它会长出一个新的叶子节点.每个节点上有一个可爱的小精灵,新长出的节点上也会同时出现一个新的小精灵.小精灵是很萌但是也很脆弱的生物,每个小精灵 i 都有一个感受能力值Ri ,小精灵 i, j 成为朋友当且仅当在树上 i 和 j 的距离 dist(i,j) ≤ Ri + R! ,其中 dist(i…