传送门(下面也有题面) 题目大意: 一颗有根树,每个非叶子节点都有三个子节点,每个节点的权为0/1. 每个节点的权 取决于其所有子节点中 哪种权出现的次数更多. 有若干次询问,每次询问修改一个叶子节点的权,然后输出修改后根节点的权. 给出叶子节点初始值. 解法:树链剖分+线段树 叶子节点和非叶子节点的性质不同,为了省却麻烦,我们把叶子节点去掉, 每次修改叶子节点就直接修改其父亲.以下的“叶子节点”均指处理后的树的叶子节点. 如果用num[]记录每个节点的权为1的子节点个数, 那么当num[i]>…
这道题特别恶心,首先我们可以发现更改的就是出现连续的一或二,那么就用线段树+树链剖分找到这个范围 想到是不难想,就是打起来恶心罢了= = CODE: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<stack> using namespace std; #define maxn 500100 struct edges{ int t…
傻逼线段树,傻逼数剖 线段树 定义: 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点. 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN).而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需要离散化让空间压缩. 有什么用? 线段树功能强大,支持区间求和,区间最大值,区间修改,单点修改等操作.线段树的思想和分治思想很相像.线段树的每一个节点都储存着一段区间[L-R]的信息,其…
犯傻了,想到了如果是 0->1 的话就找最深的非 1 编号,是 1 -> 0 的话就找最深的非 0 编号. 但是没有想到这个东西可以直接维护. 假设不考虑叶子节点,那么如果当前点的值是 1 的话要求儿子节点权和 > 1 假设当前从 0->1,那么该叶子造成的影响一定是一条向上的链. 如果向上走到某一时刻,该点的儿子权和不等于 1,那么这个点及以上就影响不到了. 如果权和为 2,那么在 0->1 之前就已经是 1 了,修改后也肯定还是 1. 如果权和为 0,那么在 0->…
3553: [Shoi2014]三叉神经树 Time Limit: 160 Sec  Memory Limit: 256 MBSubmit: 347  Solved: 112[Submit][Status][Discuss] Description 计算神经学作为新兴的交叉学科近些年来一直是学术界的热点.一种叫做SHOI 的神经组织因为其和近日发现的化合物 SHTSC 的密切联系引起了人们的极大关注.SHOI 组织由若干个 SHOI 细胞构成,SHOI 细胞之间形成严密的树形结构.每个 SHOI…
题目链接: [JOI 2019 Final]独特的城市 对于每个点,它的答案最大就是与它距离最远的点的距离. 而如果与它距离为$x$的点有大于等于两个,那么与它距离小于等于$x$的点都不会被计入答案. 所以我们需要找到对于每个点$u$距离它最远的点及最小的距离$x$满足距离$u$的距离大于等于$x$的点都只有一个. 那么怎么找距离每个点最远的点? 这个点自然就是树的直径的一个端点了! 我们将树的直径先找到,然后讨论一下对于每个点,有哪些点可能会被计入答案: 如图所示,我们以点$x$为例,假设它距…
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ30.html 题目传送门 - UOJ#30 题意 uoj写的很简洁.清晰,这里就不抄一遍了. 题解 首先建出圆方树.接下来,我们称"圆点"为原来有的点,"方点"为新增的点. 然后先只考虑在线询问如何做. ——把方点的值设置成所有与他连边的圆点的权值的最小值,直接在圆方树上树链剖分再套个线段树支持一下区间询问即可. 然后会发现这样做支持不了修改操作. ——直接来个菊花图不断修…
题目描述 输入 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai,Bi,Vi分别表示道路(Ai,Bi),其价值为Vi 其中城市由1..N进行标号 输出 输出最大平均估值,保留三位小数 样例输入 4 2 3 1 2 1 1 3 2 1 4 3 样例输出 2.500 提示 N<=100000,1<=L<=U<=N-1,Vi<=1000000 这题算…
传送门 注意到我们需要求的是两点之间所有简单路径中最小值的最小值,那么对于一个点双联通分量来说,如果要经过它,则一定会经过这个点双联通分量里权值最小的点 注意:这里不能缩边双联通分量,样例\(2\)就是一个反例 上面这个图如果缩点双会缩成\(3\)个,但是缩边双会将整个图缩成\(1\)个点. 假如我们询问的是\((1,4)\)之间的简单路径,而图中权值最小的点为\(7\)号点,那么如果缩成了边双联通分量,你的答案会是\(7\)号点的权值,意即认为可以走到\(7\)号点,但实际上如果到\(7\)号…
传送门 长链剖分模板题. 题意:给出一棵树,设fi,jf_{i,j}fi,j​表示iii的子树中距离点iii距离为jjj的点的个数,现在对于每个点iii要求出使得fif_ifi​取得最大值的那个jjj. 思路:有一个明显的状态转移式fi,j=∑v∈sonifv,j−1f_{i,j}=\sum_{v\in son_i}f_{v,j-1}fi,j​=∑v∈soni​​fv,j−1​,那么考虑对这棵树长链剖分,对于链上的信息用指针实现O(1)O(1)O(1)转移,而链与链之间的转移直接暴力转就行,因为…