树形dp与树分治
freeze up
集腋成裘
展开
-
一类树形dp & 点分治题目总结
题目链接:1、https://blog.csdn.net/weixin_44059127/article/details/104093004 路径权值和(异或)2、https://blog.csdn.net/weixin_44059127/article/details/104098526 路径权值和(奇偶)3、https://blog.csdn.net/weixin_44059127/ar...原创 2020-03-17 12:13:47 · 269 阅读 · 0 评论 -
计蒜客 - A1082 青云的机房组网方案(困难)
题意:给定一棵有 nnn 个结点的树,结点带权 aia_iai,求点权互质的所有点对距离和。(n,ai≤105)(n, a_i \leq 10^5)(n,ai≤105)链接:https://nanti.jisuanke.com/t/A1082解题思路:考虑点分治处理路径,那么子问题为求序列中所有互质点对的信息,即处理 gcd=1gcd = 1gcd=1 的点对,记答案为 f(1)f(...原创 2020-03-16 21:42:44 · 246 阅读 · 0 评论 -
CodeForces - 1120D Power Tree
题意:给定一棵有 nnn 个结点的树,点 iii 的费用为 aia_iai。第一阶段选购一些结点,第二阶段将会给所有叶结点随机赋权 bib_ibi,第三阶段可进行的操作为,选定第一阶段购买的某点 uuu,对 uuu 子树内所有叶结点加上 xxx,可无限次操作,问在第一阶段最少花费多少,能使得无论 bib_ibi 如何,都可以在第三阶段将所有叶结点权值变为 000。并输出所有可能成为最优解的...原创 2020-02-27 22:21:55 · 122 阅读 · 0 评论 -
HDU - 5016 Mart Master II
题意:给定一棵有 nnn 个结点的树,树结点代表一个城市,其中有些城市建立了集市,一个城市里的人会选择去最近的有集市的城市,如果有多个相同距离的,则去标号最小的。现在你可以选择在一个没有集市的城市里建立一个集市,要求最大化地被作为选择,输出有多少个城市会选择到该集市。(n≤105)(n \leq 10^5)(n≤105)链接:https://vjudge.net/problem/HDU-50...原创 2020-01-31 16:38:41 · 121 阅读 · 0 评论 -
HYSBZ - 1040 骑士
题意:有 nnn 个骑士,每个骑士有战斗力值,并有且仅有一个厌恶的骑士对象,骑士不能与其厌恶的骑士一同出战,问能一同出战的骑士的总战斗力的最大值。(n≤106)(n \leq 10^6)(n≤106)链接:https://vjudge.net/problem/HYSBZ-1040解题思路:转化为求带权最大独立集,若关系图森林,则可以通过树形 dpdpdp 直接求解,现在有 nnn 个点、...原创 2020-01-31 12:49:37 · 135 阅读 · 0 评论 -
HDU - 4916 Count on the path
题意:给定一棵有 nnn 个结点的树,再有 qqq 次询问,每次询问 uuu 到 vvv 路径上没有出现的最小编号(结点)。(n,q≤106)(n,q \leq 10^6)(n,q≤106)链接:https://vjudge.net/problem/HDU-4916解题思路:如果数量级是 10^5 我将用主席树.。以 111 号结点为根,若 u,vu,vu,v 的 lcalcalca 不...原创 2020-01-30 14:58:56 · 208 阅读 · 0 评论 -
Gym - 102460B The Power Monitor System
题意:给定一棵有 nnn 个结点的树,开始时树的结点和边均为白色,现要求将结点和边全部染黑,可以选择一个结点,将其直接染黑,代价为 111,结果为该结点及其邻接结点、边均被染黑。对于其他结点递归地考虑:① 若某条边被染黑,则两端结点被染黑;② 若某条边两端结点被染黑,则该边被染黑;③ 若某个点度为 k>1k \gt 1k>1,且其中 k−1k - 1k−1 条边被染黑,则剩余的那条边...原创 2020-01-29 22:56:00 · 638 阅读 · 3 评论 -
CodeForces - 935E Fafa and Ancient Mathematics
题意:给定一个长度为 EEE 的算式,格式为 ddd (ddd 是个位数字) 或 (E1 op E2)( E_1~op~E_2)(E1 op E2),其中 E1,E2E_1, E_2E1,E2 均为算式,opopop 为 +++ 或 −-−。在给定的算式中所有 opopop 均未知,用问号替代,再给定 PPP 和 MMM,表示能填入的 +++ 和 ...原创 2020-01-28 15:35:51 · 192 阅读 · 0 评论 -
CodeForces - 960E Alternating Tree
题意:给定一棵有 nnn 个结点的树,边权均为 111,结点带点权 ViV_iVi,一条路径 (v1,v2,...,vm)(v_1,v_2,...,v_m)(v1,v2,...,vm) 的权值定义为 ∑i=1m(−1)(i+1)Vvi\sum\limits_{i = 1}^{m}(-1)^{(i + 1)}V_{v_i}i=1∑m(−1)(i+1)Vvi,求所有路径权值总和。(n≤...原创 2020-01-28 11:57:26 · 344 阅读 · 0 评论 -
CodeForces - 771C Bear and Tree Jumps
题意:给定一棵有 nnn 个结点的树,边权均为 111,再给定 kkk,求 ∑in∑j=i+1n⌈dis(i,j)k⌉\sum\limits_{i}^{n}\sum\limits_{j=i+1}^{n}\lceil\cfrac{dis(i, j)}{k}\rceili∑nj=i+1∑n⌈kdis(i,j)⌉。(n≤2×105,k≤5)(n \leq 2 × 10^5, k \leq 5)...原创 2020-01-27 16:56:53 · 234 阅读 · 1 评论 -
CodeForces - 766E Mahmoud and a xor trip
题意:给定一棵有 nnn 个结点的树,点带权,求所有路径异或值之和。(n≤105)(n \leq 10^5)(n≤105)链接:https://codeforces.com/problemset/problem/766/E解题思路:若是路径权值和,则树形 dpdpdp 就可,现在变成异或,按位考虑。异或值之和可拆位表示成各二进制位数量,树形 dpdpdp 时维护子树内各二进制位数量,则可...原创 2020-01-27 15:23:15 · 2697 阅读 · 0 评论 -
CodeForces - 708C Centroids
题意:给定一棵有 nnn 个结点的树,问对于每个点 uuu,是否有可能通过移动至多一条边使得原图仍为一棵树并且 uuu 为树的重心。(n≤4×105)(n \leq 4 × 10^5)(n≤4×105)链接:https://codeforces.com/problemset/problem/708/C解题思路:考虑 uuu 能成为重心的情况,找到其重儿子 vvv,若重儿子子树大小不超过 ...原创 2020-01-27 11:35:31 · 254 阅读 · 0 评论 -
CodeForces - 685B Kay and Snowflake
题意:给定一棵有 nnn 个结点的以 111 号结点为根的树,有 qqq 次询问,每次询问以 xxx 为根的子树的重心(若删去 uuu 后的最大联通块的大小的两倍小于等于 siz[x]siz[x]siz[x],则 uuu 为 xxx 的重心)。(n,q≤3×105)(n, q \leq 3×10^5)(n,q≤3×105)链接:https://codeforces.com/problemse...原创 2020-01-26 18:17:20 · 226 阅读 · 0 评论 -
CodeForces - 1294F Three Paths on a Tree
题意:给定一棵有 nnn 个结点的树,边权均为 111,求三个点 a,b,ca,b,ca,b,c 使得在路径 ab,ac,bcab,ac,bcab,ac,bc 间的边数最多。输出最多边数即选择的三点。(3≤n≤2×105)(3 \leq n \leq 2×10^5)(3≤n≤2×105)链接:https://codeforces.com/problemset/problem/1294/F解...原创 2020-01-26 14:31:10 · 218 阅读 · 0 评论 -
CodeForces - 461B Appleman and Tree
题意:给定一棵有 nnn 个结点的树,结点颜色为白或者黑,求删去 k(0≤k<n)k(0 \leq k \lt n)k(0≤k<n) 条边后,各联通块恰含有一个黑色结点的方案数。(n≤105)(n \leq 10^5)(n≤105)链接:https://vjudge.net/problem/CodeForces-461B解题思路:树形 dpdpdp,dp[u][0]dp[u]...原创 2020-01-26 12:05:07 · 150 阅读 · 0 评论 -
HDU - 4303 Hourai Jeweled
题意:给定一棵有 nnn 个结点的树,结点、边带权,一条路径的权值非零且为路径上点权和当且仅当该路径上不存在相邻边的边权相同,求所有路径的权值和。(n≤3×105)(n \leq 3×10^5)(n≤3×105)链接:https://vjudge.net/problem/HDU-4303解题思路:第一反应写了点分,对于 calcalcal 函数,只需要直接 dfsdfsdfs 求出各子树...原创 2020-01-25 20:34:20 · 176 阅读 · 1 评论 -
HDU - 4008 Parent and son
题意:给定一棵有 nnn 个结点的树,再有 qqq 次询问,每次询问以 XXX 为根时,YYY 的子结点中、后代结点中编号最小的结点各是哪个,若 YYY 是叶结点,输出无解。(n,q≤105)(n,q \leq 10^5)(n,q≤105)链接:https://vjudge.net/problem/HDU-4008解题思路:如果仅要求以 111 为根,则树形 dpdpdp 一下就可以得到...原创 2020-01-25 10:23:00 · 162 阅读 · 0 评论 -
HDU - 6613 Squrirrel
题意:给定一棵有 nnn 个结点的树,边带权,现在可以选择一条边权置 000,求一个结点作为根,使得叶结点最大深度最小。(n≤2×105)(n \leq 2×10^5)(n≤2×105)链接:https://vjudge.net/problem/HDU-6613解题思路:考虑没有边权置 000 操作,很容易写出树形 dpdpdp 的转移式。现在考虑可以将一条边权置 000,则 dpdpd...原创 2020-01-23 22:10:10 · 294 阅读 · 0 评论 -
HDU - 3534 Tree
题意:给定一棵有 nnn 个结点的树,求两点间最长距离,以及最长距离的点对个数。(n≤ ?)(n\leq~?)(n≤ ?)链接:https://vjudge.net/problem/HDU-3534解题思路:即求直径,以及直径的个数。直径可以由两次 dfsdfsdfs 得到,距离为 ddd 的点对个数,点分可解。更简单的做法是树形 dpdpdp,自下而上维护最长链及最...原创 2020-01-23 13:46:57 · 169 阅读 · 0 评论 -
CodeForces - 293E Close Vertices
题意:给定一棵有 nnn 个结点的树,边带权,求有多少对结点 (i<j)(i \lt j)(i<j) 满足 iii 到 jjj 的路径长度不大于 lll 且 路径上的边权和不大于 www。(n≤105)(n\leq 10^5)(n≤105)链接:https://vjudge.net/problem/CodeForces-293E解题思路:点分治,calcalcal 子问题即求...原创 2020-01-23 09:59:24 · 206 阅读 · 0 评论 -
HDU - 4871 Shortest-path tree
题意:给定一个有 nnn 个点,mmm 条边的带权无向图,先求出 111 号结点为根的最短路径树,111 号结点在最短路图上按结点字典序最小的顺序走到其他结点。然后求恰含 kkk 个结点的最长链的长度,以及这样的恰含 kkk 个结点的最长链有几条。(n≤3×104, m≤6×104)(n \leq 3×10^4,~m \leq 6×10^4)(n≤3×104, m≤6×104...原创 2020-01-22 11:37:48 · 171 阅读 · 0 评论 -
CodeChef - PRIMEDST Prime Distance On Tree
题意:给定一个有 nnn 个结点的树,边权为 111,随机选取一对结点,问结点间距离为质数的概率。(n≤5×104)(n \leq 5×10^4)(n≤5×104)链接:https://vjudge.net/problem/CodeChef-PRIMEDST解题思路:路径问题,用点分。calcalcal 函数的求解,fftfftfft 处理出所有路径长度,再判断即可。参考代码:#in...原创 2020-01-21 19:19:46 · 170 阅读 · 0 评论 -
HDU - 4670 Cube number on a tree
题意:给定一棵有 nnn 个结点的树,每个结点上有权值 aia_iai,问有多少条路径满足路径上的点权乘积为立方数,点权可以被表示为 kkk 个素数。(n≤5×104, k≤30)(n \leq 5×10^4, ~k \leq 30)(n≤5×104, k≤30)链接:https://vjudge.net/problem/HDU-4670解题思路:点分,一条路径点权...原创 2020-01-21 13:03:00 · 149 阅读 · 0 评论 -
HDU - 4812 D Tree
题意:给定一棵含 nnn 个结点的树,每个结点上有一个数值 aia_iai,判断是否存在点 (u, v)(u,~v)(u, v) 满足其路径上的结点数值乘积模 1e6+31e6+31e6+3 为 kkk,若存在则输出字典序最小的一对。(n≤1e5n\leq 1e5n≤1e5)链接:https://vjudge.net/problem/HDU-4812解题思路:点分治...原创 2019-11-29 17:09:18 · 220 阅读 · 0 评论 -
2019ICPC沈阳网络赛 - D. Fish eating fruit
题意:给定一棵有 nnn 个结点的树,树边带权,求任意两点间距离中模 333 分别为 0, 1, 20,~1,~20, 1, 2 的路径长度和。(n≤1e4, ∑n≤1e5n\leq 1e4,~\sum n \leq 1e5n≤1e4, ∑n≤1e5)链接:https://nanti.jisuanke.com/t/41403解题思...原创 2019-11-28 16:32:00 · 152 阅读 · 0 评论