【CF600E】Lomsat gelral(dsu on tree)】的更多相关文章

[CF600E]Lomsat gelral(dsu on tree) 题面 洛谷 CF题面自己去找找吧. 题解 \(dsu\ on\ tree\)板子题 其实就是做子树询问的一个较快的方法. 对于子树的询问,我们不难想到子树就是\(dfs\)序上的连续一段, 可以把树转化成序列再用莫队来解. 其实可以对树进行树链剖分,然后暴力+优化来解 具体的做法就是: 递归处理轻儿子,计算轻儿子答案, 然后消去轻儿子对于答案的影响. 然后递归处理重儿子,不消去影响,最后加入所有轻儿子贡献,计算答案. 复杂度?…
传送门 题意: 求子树众数. 思路: \(dsu\ on\ tree\)模板题,用一个桶记录即可. 感觉\(dsu\ on\ tree\)这个算法的涉及真是巧妙呀,保留重链的信息,不断暴力轻边,并且不断在子树内递归下去.又由于轻边数量不会超过\(O(logn)\),所以总的时间复杂度控制在\(O(nlogn)\). /* * Author: heyuhhh * Created Time: 2019/11/13 15:09:25 */ #include <bits/stdc++.h> #defi…
dsu on tree跟冰茶祭有什么关系啊喂 dsu on tree的模板题 思想与解题过程 类似树链剖分的思路 先统计轻儿子的贡献,再统计重儿子的贡献,得出当前节点的答案后再减去轻儿子对答案的贡献 似乎很蠢 但是复杂度是\(O(nlogn)\)的,在没有修改的情况下,可以把树上莫队吊起来打 没了 代码实现 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int…
dsu on tree板子题.这个trick保证均摊O(nlogn)的复杂度,要求资瓷O(1)将一个元素插入集合,清空集合时每个元素O(1)删除.(当然log的话就变成log^2了) 具体的,每次先遍历轻儿子的子树,暴力求得所需信息,每遍历完一棵轻子树都将其信息清空.然后遍历重子树,暴力求得所需信息,保留信息,再重新遍历轻子树将信息合并,最后加上根本身得到原子树的信息. 复杂度证明考虑每个点的信息被统计的次数,显然这只与其到根的路径上轻边条数有关,于是复杂度O(nlogn). #include<…
CF600E Lomsat gelral Solution 考虑一下子树的问题,我们可以把一棵树的dfn序搞出来,那么子树就是序列上的一段连续的区间. 然后就可以莫队飞速求解了. 但是这题还有\(\Theta(nlog_n)\)的做法.能有\(\Theta(n\sqrt{n})\)的做法要什么\(logn\)的 考虑\(dsu\ on\ tree\),与莫队没有任何区别. 如果不会的话,请自行跳转小Z的袜子并且切掉. 代码实现 #include<stdio.h> #include<std…
题目大意:给定一棵 N 个节点的有根树,1 号节点是树的根节点,每个节点有一个颜色.求对于每个节点来说,能够支配整棵子树的颜色之和是多少.支配的定义为对于以 i 为根的子树,该颜色出现的次数不小于任何其他颜色出现的次数. 题解:学会了 dsu on tree. 树上启发式合并算法是一种对暴力的优化算法.对于暴力算法来说,直接遍历每个节点,再遍历该节点对应的子树寻找答案,时间复杂度显然为 \(O(n^2)\).考虑进行优化,显然对于父节点来说,遍历到的最后一棵子树的贡献可以不用消去,直接加在父节点…
传送门 题意: 给出一颗含有\(n\)个结点的无根树,之后给出一个长度为\(m\)的序列,每个元素在\([1,n]\)之间. 现在序列中每个长度为偶数的区间的完成时间定义为树上最小配对方法中每对匹配点间距离的总和. 现在要求所有长度为偶数的区间的完成时间的和. 思路: 首先不妨将这颗树转化为有根树,最终不会影响答案. 注意到性质:偶数个点的两两匹配方式是唯一的,都是最深的两个点相互匹配,这样才能保证没有重复计算的边. 在子树内部直接计算不好算,要考虑很多东西(一开始就想偏了QAQ).因为匹配方式…
(题面来自luogu) 题意翻译 一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和. ci <= n <= 1e5 裸题.统计时先扫一遍得到出现次数最大值,然后再扫一遍看哪个颜色的出现次数与mxCnt相等.注意用一个bool数组判重,清空轻儿子贡献时要顺手把bool数组也打成false.(这是错的,请看下一份代码) 代码: #include <iostream> #include <cstdio> #include <…
(这题在洛谷主站居然搜不到--还是在百度上偶然看到的) 题目描述 给一棵根为1的树,每次询问子树颜色种类数 输入输出格式 输入格式: 第一行一个整数n,表示树的结点数 接下来n-1行,每行一条边 接下来一行n个数,表示每个结点的颜色c[i] 接下来一个数m,表示询问数 接下来m行表示询问的子树 输出格式: 对于每个询问,输出该子树颜色数 说明 对于前三组数据,1<=m,c[i]<=n<=100 1<=m,c[i]<=n<=1e5 本来在学树上启发式合并,偶然看到这个题,…
[CF1009F]Dominant Indices(长链剖分) 题面 洛谷 CF 翻译: 给定一棵\(n\)个点,以\(1\)号点为根的有根树. 对于每个点,回答在它子树中, 假设距离它为\(d\)的点有\(f_d\)个,求最大的\(f_d\),并且输出\(d\),如果有多个\(f_d\)相同,输出最小的\(d\). 题解 这个东西和深度相关,很显然可以直接用长链剖分维护,时间复杂度\(O(N)\) 这道题目要维护的东西其实也很类似于\(dsu\ on\ tree\),但是复杂度会多个\(log…
[RDA]使用RDA(Remote Diagnostic Agent)工具对数据库进行健康检查 分类: Linux RDA英文全称叫做"Oracle Remote Diagnostic Agent". 这个Oracle诊断工具是用perl编写的,包含非常丰富的诊断脚本,使用它可以非常便利的采集到Oracle数据库服务器系统配置和数据库的详细信息. 如果您在向Oracle支持人员寻求帮助时能够提供一份RDA报告,将会大大的缩短问题处理的周期,避免信息的反复采集. RDA不会更改数据库服务…
第6单元作业[2]- 在线编程(难度:中) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 在第5单元作业[4]以及本单元作业[1]的代码基础上,实现类间的继承关系 依照学术诚信条款,我保证此作业是本人独立完成的. 1 以MyShape作为基类,修改MyRectangle类和MyCircle类从MyShape派生(10分) 题目难度:中   题目内容: 基于…
第5单元作业[4] - 在线编程(难度:难) 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 在本单元作业[3]的基础上,增加Circle类 依照学术诚信条款,我保证此作业是本人独立完成的. 1 在本单元作业[3]的基础上,修改MyRectangle类,并且增加新的MyCircle类表示圆形 练习编写拷贝构造函数(10分) 题目内容: 修改MyRectang…
[12c]扩展数据类型(Extended Data Types)-- MAX_STRING_SIZE 在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字符的大小会降低对LOB 数据类型的使用.为了启用扩展字符大小,你必须将MAX_STRING_SIZE的初始数据库参数设置为EXTENDED. 要使用扩展字符类型需要执行以下过程: 1.关闭数据库 2.以升级模式重启数据库3.更改参数: ALT…
POJ 1986 Distance Queries / UESTC 256 Distance Queries / CJOJ 1129 [USACO]距离咨询(最近公共祖先) Description Farmer John's cows refused to run in his marathon since he chose a path much too long for their leisurely lifestyle. He therefore wants to find a path…
CJOJ 1070 [Uva]嵌套矩形(动态规划 图论) Description 有 n 个矩形,每个矩形可以用两个整数 a, b 描述,表示它的长和宽.矩形 X(a, b) 可以嵌套在矩形 Y(c, d) 中当且仅当 a<c, b<d,或者 b<c, a<d(相当于把矩形 X 旋转了 90°).例如 (1, 5) 可以嵌套在 (6, 2) 内,但不能嵌套在 (3, 4) 内. 你的任务是选出尽量多的矩形,使得除了最后一个之外,每一个矩形都可以嵌套在下一个矩形内. Input 第一…
[Luogu3457]POW-The Flood(并查集) 题面 洛谷 题解 我们知道,如果一个点和一个海拔不高于它的点相连 那么连在那个点是更优的,所以考虑按照每个点的海拔排序 既然按照海拔排序,相邻的海拔递增的点可以放在同一个集合里面讨论 考虑使用并查集,每一个集合中只需要有一个抽水机即可 每次从海拔最低的点中选出一个点 将它和它周围的海拔比当前海拔低的点直接链接在一起 同时,维护每个并查集是否存在抽水机 如果当前点是城市,并且所在的并查集中有抽水机了 显然是不用再额外增加抽水机了 但是,如…
[BZOJ2160]拉拉队排练(回文树) 题面 BZOJ 题解 看着题目, 直接构建回文树 求出每个回文串的出现次数 直接按照长度\(sort\)一下就行了 然后快速幂算一下答案就出来了 这题貌似可以用Manacher做吧 求出以每个字符为中心的回文串的最大长度 然后搞一下前缀和就行了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cma…
[Uoj34]多项式乘法(NTT,FFT) 题面 uoj 题解 首先多项式乘法用\(FFT\)是一个很久很久以前就写过的东西 直接贴一下代码吧.. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set> #include<map&g…
[BZOJ3992]序列统计(动态规划,NTT) 题面 BZOJ 题解 最裸的暴力 设\(f[i][j]\)表示前\(i\)个数,积在膜意义下是\(j\)的方案数 转移的话,每次枚举一个数,直接丢进去就好 复杂度\(O(nm|S|)\),10pts #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<…
[BZOJ4195][NOI2015]程序自动分析(并查集) 题面 Description 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3,...xn代表程序中出现的变量,给定n个形如xi=xj或者xi!=xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述条件同时被满足. Input 第一行包含一个正整数t,表示需要判定的问题个数.注意这些问题之间相互独立. 对于每个问题,包含若干行:…
[BZOJ2875]随机数生成器(矩阵快速幂) 题面 Description 栋栋最近迷上了随机算法,而随机数是生成随机算法的基础.栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数m,a,c,X[0],按照下面的公式生成出一系列随机数{Xn}: \[X[n+1]=(aX[n]+c) mod m\] 其中mod m表示前面的数除以m的余数.从这个式子可以看出,这个序列的下一个数总是由上一个数生成的. 用这种方法生成的…
[CF932E]Perpetual Subtraction(NTT,线性代数) 题面 洛谷 CF 题解 设\(f_{i,j}\)表示\(i\)轮之后这个数恰好为\(j\)的概率. 得到转移:\(\displaystyle f_{i,j}=\sum_{k=j}^{n}f_{i-1,k}*\frac{1}{k+1}\). 看成生成函数就有\(\displaystyle F_i(x)=\sum_{j=0}^{n}x^j\sum_{k\ge j}\frac{f_{i-1,k}}{k+1}\). 把两维换…
[BZOJ1023]仙人掌图(仙人掌,动态规划) 题面 BZOJ 求仙人掌的直径(两点之间最短路径最大值) 题解 一开始看错题了,以为是求仙人掌中的最长路径... 后来发现看错题了一下就改过来了.. 首先和普通的仙人掌\(dp\)是一样的, 对于没有问题的圆圆边,直接做最长链的转移(同时更新\(ans\)) 然后对于一个环,把它拎出来单独考虑 首先要对于这个环,计算能够贡献的答案, 然后再用环上的值更新环的最顶点 先考虑怎么更新,这个直接拿环上的点的\(dp\)值,再计算一下这两点之间的最短路(…
[BZOJ4543]Hotel加强版(长链剖分) 题面 BZOJ,没有题面 洛谷,只是普通版本 题解 原来我们的\(O(n^2)\)做法是设\(f[i][j]\)表示以\(i\)为根的子树中,距离\(i\)的深度为\(j\)的点的个数,这样子可以每次在\(LCA\)处合并答案. 然后长链剖分优化一下,就变成了\(O(n)\)的??? 写的详细写的题解 玄学的指针我也没太懂啊....我才不会说我代码是照着题解打的 upd:之前的代码蒯错了,我去BZOJ把过了的代码再蒯一遍 #include<ios…
[BZOJ1152]歌唱王国(生成函数,KMP) 题面 BZOJ 洛谷 题解 根据\(YMD\)论文来的QwQ. 首先大家都知道普通型生成函数是\(\displaystyle \sum_{i=0}^{\infty}a_ix^i\),类似的定义概率生成函数\(\displaystyle F(x)=\sum_{i=0}^\infty P(X=i)x^i\).其中\(P(X=i)\)表示\(X\)这个随机变量为\(i\)的概率. 那么我们可以知道几个结论:\(\displaystyle F(1)=\s…
[BZOJ4887][TJOI2017]可乐(矩阵快速幂) 题面 BZOJ 洛谷 题解 模板题??? #include<iostream> #include<cstdio> #include<cstring> using namespace std; #define MAX 35 #define MOD 2017 inline int read() { int x=0;bool t=false;char ch=getchar(); while((ch<'0'||c…
[BZOJ3716][PA2014]Muzeum(贪心,网络流) 题面 BZOJ 题解 很明显可以写最大权闭合子图,然后会\(TLE\)成傻逼. 为了方便,就把一个警卫能够看到的范围处理一下(把坐标系处理一下),强制让他看到一个\(90°\)的夹角,再旋转一下就可以变成强制看到右下角的范围. 我们知道最大权闭合子图求出来的最小割=最大流. 那么我们来模拟这个过程,首先把所有警卫加入进来,其流量为贿赂他的代价.按照\(x\)轴排序之后,把所有它能够看到的宝物拿进来,然后考虑向谁流,会流向他能够看见…
[BZOJ3165][HEOI2013]Segment(李超线段树) 题面 BZOJ 洛谷 题解 似乎还是模板题QwQ #include<iostream> #include<cstdio> #include<cmath> using namespace std; #define MAX 100100 #define lson (now<<1) #define rson (now<<1|1) inline int read() { int x=0…
[BZOJ5300][CQOI2018]九连环 (高精度,FFT) 题面 BZOJ 洛谷 题解 去这里看吧,多么好 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; #define MAX 150000 const double Pi=acos(-1); inline int read() { int x=0;bool t=fa…