LOJ#2553 暴力写挂】的更多相关文章

题意:给定两棵树T1,T2,求d1[x] + d1[y] - d1[lca1(x, y)] - d2[lca2(x, y)]的最大值. 解:考虑把上面这个毒瘤东西化一下.发现它就是T1中x,y到根的路径并 - T2中x,y到根的路径交. 也就是T1中的一个三叉状路径和T2中lca到根的路径. 根据情报中心的套路,把这个东西 * 2,发现就是d1[x] + d1[y] + dis1(x, y) - d2[x] - d2[y] + dis2(x, y) 令val[i] = d1[i] - d2[i]…
[LOJ#2553][CTSC2018]暴力写挂 试题描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链.可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路. 这时,善良的板板出现在了空中,他的身上发出璀璨却柔和的光芒,荡漾在考场上.''题目并不难.'' 板板说.那充满磁性的声音,让 temporaryDO 全身充满了力量. 他决…
Loj #2553. 「CTSC2018」暴力写挂 题目描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链.可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路. 这时,善良的板板出现在了空中,他的身上发出璀璨却柔和的光芒,荡漾在考场上.''题目并不难.'' 板板说.那充满磁性的声音,让 temporaryDO 全身充满了力量. 他…
题目链接: CSTC2018暴力写挂 题目大意:给出n个点结构不同的两棵树,边有边权(有负权边及0边),要求找到一个点对(a,b)满足dep(a)+dep(b)-dep(lca)-dep'(lca)最大,其中dep为第一棵树中的深度,dep'为第二棵树中的深度,lca为两点的最近公共祖先.注意:a与b可以相同! 本题讲解两种做法,其中第一种做法常数较小且比较好写,第二种做法思路比较奇特.为了方便讲解,设两点在第一棵树中的距离为$dis(x,y)$ 解法一 题中给的式子显然不能直接做,我们将它变换…
[CTSC2018]暴力写挂(边分治,虚树) 题面 UOJ BZOJ 洛谷 题解 发现第二棵树上的\(LCA\)的深度这玩意没法搞,那么枚举在第二棵树上的\(LCA\). 然后剩下的部分就是\(dep[x]+dep[y]-dep[lca]\) 这个玩意乱搞一下,就是\(\frac{1}{2}(dep[x]+dep[y]+dis(x,y))\). 这样子就和\(LCA\)没有关系啦. 对于第一棵树进行边分治,分治两侧丢到第二棵树上建虚树做一遍树形\(dp\)求最大值就完事了??? 然后常数巨大,最…
[CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离. 解决多棵树的问题就是降维了. 经典的做法是边分树合并. 边分树结构类似0/1 trie 就是把边分树对于每个点拆开路径 合并两棵边分树同时可以得到两个边分树之间点对的路径的信息 感觉有点类似线段树合并. 根据“猫树”思想,两点间的路径一定经过边分树上LCA的那条边.(u,v不相等) 我们考虑在这个LCA处统计贡献 具体地,先对1树进行边分治 每…
BZOJ5341: [Ctsc2018]暴力写挂 https://lydsy.com/JudgeOnline/problem.php?id=5341 分析: 学习边分治. 感觉边分治在多数情况下都能用转二叉树后的点分治来写,不过反正都转二叉树了,不如写边分治. 对于这道题,最大化\(dep_x+dep_y-dep(lca1)+dep(lca2)\) \((dis(x,y)+dep_x+dep_y+dep(lca2))/2\) 其中\(dis(x,y)+dep_x+dep_y\)可以在分治过程中拆…
毫无$ Debug$能力 全世界就我会被卡空间.jpg LOJ #2553 UOJ #400 Luogu P4565 题意 给定两棵树$ T,T'$,求一组点对$ (x,y)$使得$deep(x)+deep(y)-deep(LCA(x,y))-deep'(LCA'(x,y))$尽量大 $ x$可以等于$ y$,点数不超过$ 366666$,边有边权 $ Solution$ 枚举$T'$的一个点$ u$作为$LCA'(x,y)$,则$ x,y$必然在$u$的不同子树或者就是点$u$ 则 $ ans…
题目:https://loj.ac/problem/2553 第一棵树上的贡献就是链并,转化成 ( dep[ x ] + dep[ y ] + dis( x, y ) ) / 2 ,就可以在第一棵树上写边分治,把两边的点到第二棵树上建虚树,在虚树上 DP ,那么虚树上的当前点就是它不同子树里点的 lca ,所以记 dp[ cr ][ 0/1 ] 表示该点子树里 “第一棵树边分治的两个点集” 里最大的两个贡献:用当前点的深度作为 “第二棵树的 lca 深度” 来更新答案即可. 一直 TLE . #…
题意 给你两个有 \(n\) 个点的树 \(T, T'\) ,求一对点对 \((x, y)\) 使得 \[ depth(x) + depth(y) - (depth(LCA(x , y)) + depth′ (LCA′ (x, y))) \] 最大. 数据范围 对于所有数据, \(n \le 366666 , |v| \le 2017011328\) . 题解 第一次写边分治(原来碰到过都弃疗啦) . 我们看这个式子不太舒服,化简一下: \[ \frac 1 2 (dist(x, y) - de…