原文链接https://www.cnblogs.com/zhouzhendong/p/9275606.html 题目传送门 - 洛谷P1600 题目传送门 - LOJ#2359 题目传送门 - Vijos P2004 题意 给定一个有 $n$ 个节点的树,每一个节点有一个观察员,编号为 $i$ 的节点上的观察员会在 $W_i$ 时刻出来观察. 现在有 $m$ 个热爱健身的人,其中第 $i$ 个从节点 $S_i$ 开始,到 $T_i$ 结束. 从时刻 $0$ 开始,每一个人同时以每秒一条边的速度沿…
#261. [NOIP2016]天天爱跑步 描述 提交 自定义测试 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一棵包含 nn 个结点和 n−1n−1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达.树上结点编号为从 11 到 nn 的连续正整数. 现在有 mm 个玩家,第 ii 个玩家的起点为 SiSi,终点为 TiTi.每天打卡任务开始时,所有玩…
BZOJ CodeVS Uoj 题目大意: 给一个n个点的边带权树,给定m条链,你可以选择树中的任意一条边,将它置为0,使得最长的链长最短. 题目分析: 最小化最大值,二分. 二分最短长度mid,将图中链长大于mid的链提取出来,求他们的交路径,选择他们都经过最大的一条边,看是否满足要求. 这是基本思路,下面来想想如何求解:一共尝试了两种办法: 倍增lca / 树链剖分lca + 树上差分: 求lca部分略过(本题用链剖较快),对于一条u->v的路径,在u处+1,v处+1,lca处-2,从下往上…
n<=300000个点的树,每个点有个人于第Ti秒观测,有m<=300000个人于时间0开始从Sj跑到Tj,速度1个点每秒,输出每个点上的人观察到的跑步的人的数量. 前25分:直接模拟每条路径,先s跑到lca再跑到t,边跑边记时间,如果经过某个点时时间刚好一样就该点答案++. Si等于1的20分:观察人能观察到,只有他观察的时间和深度相等的时候.而一个跑步人跑下来就是这条链上满足“观察时间等于深度”的点答案+1,这可以用一个差分标记解决,如下图. 这样,最后从根节点开始向下dfs,一路上把标记…
一直以为自己当时是TLE了,但是再看发现居然WA? 然后把数组扩大一倍,就A掉了.QaQ 没什么好说的.一段路径分成两段考虑,上升的一段深度+时间是定值,下降的一段深度-时间是定值,然后打标记统计即可. 发现大概是统计数组因为深度+时间太大炸掉了. 现在想想,当时没有对拍,真是后怕. #include <cstdio> #include <vector> #include <cstring> #include <iostream> #include <…
树链剖分与倍增求\(LCA\) 首先我要吐槽机房的辣基供电情况,我之前写了一上午,马上就要完成的时候突然停电,然后\(GG\)成了送链剖分 其次,我没歧视\(tarjan LCA\) 1.倍增求\(LCA\) 理解较为简单的一种方法,但速度略慢 倍增是啥? 每个数字都可以拆成几个二的整数次的和,我们可以找出每个数字是由哪几个二的整数次的数合成的 比如说\(14 _ {10} = 1110_2 = 1000 _2 + 100 _2 + 10 _2 = 8 _ {10} + 4 _{10} + 2…
To your surprise, Jamie is the final boss! Ehehehe. Jamie has given you a tree with n vertices, numbered from 1 to n. Initially, the root of the tree is the vertex with number 1. Also, each vertex has a value on it. Jamie also gives you three types o…
题目 传送门:QWQ 分析 先敲了个树链剖分,发现无法AC(其实是自己弱,懒得debug.手写栈) 然后去学了学正解 核心挺好理解的,$ query(a) $是$ a $到根的异或和. 答案就是$ lca(x,y) \hat{}  query(x)  \hat{}  query(b) $ 接着维护异或和,很显然线段树挺容易搞的. 但我们今天学学树状数组来维护异或和 若将区间$ [l,r] $内的元素全部异或x,相当于在第l位标记x,再在第r+1位标记x,这样,对于第r位以后的元素,这两个命令互相…
题意:有一棵树,每条边给定初始权值.一个人从s点出发.支持两种操作:修改一条边的权值:求从当前位置到点u的最短路径. 分析:就是在边可以修改的情况下求树上最短路.如果不带修改的话,用RMQ预处理LCA即可. 在静态版本的LCA问题上,用树状数组维护一条边在dfs序中表示的一段区间.为什么是一段区间,因为求该边之下的任意一点到根节点的距离都必须经过这条边. 用树状数组差分前缀和的方式维护区间修改. #include<iostream> #include<cstdio> #includ…
Description 描述zcwwzdjn在追杀十分sb的zhx,而zhx逃入了一个遥远的国度.当zcwwzdjn准备进入遥远的国度继续追杀时,守护神RapiD阻拦了zcwwzdjn的去路,他需要zcwwzdjn完成任务后才能进入遥远的国度继续追杀. 问题是这样的:遥远的国度有n个城市,这些城市之间由一些路连接且这些城市构成了一颗树.这个国度有一个首都,我们可以把这个首都看做整棵树的根,但遥远的国度比较奇怪,首都是随时有可能变为另外一个城市的.遥远的国度的每个城市有一个防御值,有些时候Rapi…