题目大意 有两棵\(n\)(\(n\leq366666\))个节点的树,\(T\)和\(T'\),有边权 \(dep(i)\)表示在\(T\)中\(i\)号点到\(1\)号点的距离,\(dep'(i)\)表示在\(T'\)中\(i\)号点到\(1\)号点的距离 \(lca(i,j)\)表示在\(T\)中\(i\)号点到\(j\)号点的简单路径上到\(1\)号点边数最少的点,\(lca'(i,j)\)表示在\(T'\)中\(i\)号点到\(j\)号点的简单路径上到\(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\)可以在分治过程中拆…
[CTSC2018]暴力写挂 题面不错 给定两棵树,两点“距离”定义为:二者深度相加,减去两棵树上的LCA的深度(深度指到根节点的距离) 求最大的距离. 解决多棵树的问题就是降维了. 经典的做法是边分树合并. 边分树结构类似0/1 trie 就是把边分树对于每个点拆开路径 合并两棵边分树同时可以得到两个边分树之间点对的路径的信息 感觉有点类似线段树合并. 根据“猫树”思想,两点间的路径一定经过边分树上LCA的那条边.(u,v不相等) 我们考虑在这个LCA处统计贡献 具体地,先对1树进行边分治 每…
[LOJ#2553][CTSC2018]暴力写挂 试题描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链.可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路. 这时,善良的板板出现在了空中,他的身上发出璀璨却柔和的光芒,荡漾在考场上.''题目并不难.'' 板板说.那充满磁性的声音,让 temporaryDO 全身充满了力量. 他决…
传送门--UOJ 传送门--LOJ 跟隔壁通道是一个类型的 要求的式子中有两个LCA,不是很方便,因为事实上在这种题目中LCA一般都是枚举的对象-- 第二棵树上的LCA显然是动不了的,因为没有其他的量跟它有关了,于是考虑将\(dep_x+dep_y-dep_{LCA(x,y)}\)魔改一下 它等于\(\frac{1}{2} (dep_x+dep_y+dist_{x,y})\),LCA就没了 然后做法就很明晰了 在第一棵树上边分治,为了叙述方便称实点为原树上的点,虚点为边分治构建过程中加入的点 设…
题目链接: CSTC2018暴力写挂 题目大意:给出n个点结构不同的两棵树,边有边权(有负权边及0边),要求找到一个点对(a,b)满足dep(a)+dep(b)-dep(lca)-dep'(lca)最大,其中dep为第一棵树中的深度,dep'为第二棵树中的深度,lca为两点的最近公共祖先.注意:a与b可以相同! 本题讲解两种做法,其中第一种做法常数较小且比较好写,第二种做法思路比较奇特.为了方便讲解,设两点在第一棵树中的距离为$dis(x,y)$ 解法一 题中给的式子显然不能直接做,我们将它变换…
题目描述 www.lydsy.com/JudgeOnline/upload/201805/day1(1).pdf 题解 首先来看这个我们要最大化的东西. deep[u]+deep[v]-deep[lca(u,v)]-deep[lca(u',v')] 后面的那个东西看起来不太合群,我们可以把前后拆开. deep[u]+deep[v]-deep[lca(u,v)] 我们发现这其实就是u到根的链和v到根的链的并. 然后它还等于(deep[u]+deep[v]+dis[u][v])/2 因为deep数组…
Description Solution 边分治+边分树合并 这个题很多做法都是启发式合并的复杂度的,都有点卡 以前有个套路叫做线段树合并优化启发式合并,消掉一个 \(log\) 这个题思路类似,建出边分树,通过一些操作把它变成线段树,就可以线段树合并了 首先边分树的相关定理: 如果一棵包含 \(N\) 个结点的树中每个点的度均不大于 \(D\),那么存在一条边,使得分出的两棵子树的结点个数在 \([N/(D+1),N*D/(D+1)]\) 那么边分树的深度和度数是相关的,我们只需要通过加虚点把…
题目传送门 题目大意 给出两个大小为 \(n\) 的树,求出: \[\max\{\text{depth}(x)+\text{depth}(y)-\text{depth}(\text{LCA}(x,y)-\text{depth}^{'}(\text{LCA}^{'}(x,y)))\} \] \(n\le 3666666\),答案保证在 \(\text{long long}\) 范围内. 思路 边分治秒啊,终于学会了 边分树合并 了,在这里记录一下,以免后面忘掉了. 首先我们可(bu)以(ke)想(…
[CTSC2018]暴力写挂(边分治,虚树) 题面 UOJ BZOJ 洛谷 题解 发现第二棵树上的\(LCA\)的深度这玩意没法搞,那么枚举在第二棵树上的\(LCA\). 然后剩下的部分就是\(dep[x]+dep[y]-dep[lca]\) 这个玩意乱搞一下,就是\(\frac{1}{2}(dep[x]+dep[y]+dis(x,y))\). 这样子就和\(LCA\)没有关系啦. 对于第一棵树进行边分治,分治两侧丢到第二棵树上建虚树做一遍树形\(dp\)求最大值就完事了??? 然后常数巨大,最…
Loj #2553. 「CTSC2018」暴力写挂 题目描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = 0\) 的部分分是求树 \(T\) 上的最长链.可怜的 temporaryDO 并不会做这道题,他在考场上抓猫耳挠猫腮都想不出一点思路. 这时,善良的板板出现在了空中,他的身上发出璀璨却柔和的光芒,荡漾在考场上.''题目并不难.'' 板板说.那充满磁性的声音,让 temporaryDO 全身充满了力量. 他…
题目 描述 ​ 有两棵树\(T\)和\(T'\),节点个数都为\(n\),根节点都为\(1\)号节点; ​ 求两两点之间 $$ \begin{align} depth(x) + depth(y) - depth(LCA(x,y)) - depth'(LCA'(x,y)) \end{align} \ 其中depth(x)为x和1号节点的树上距离 \ $$ ​ 的最大值: 范围 ​ $1 \le n \le 366666 $ : 题解 原式 = \(\frac{(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…
原文链接 www.cnblogs.com/zhouzhendong/p/UOJ400.html 前言 老年选手没有码力. 题解 先对第一棵树进行边分治,然后,设点 x 到分治中心的距离为 $D[x]$,点 x 在原树上的深度为 $d[x]$,那么 $$d[x]+d[y] - d[LCA(x,y)] - d'[LCA(x,y)] = \frac 12(D[x] + d[x]) + \frac 12 (D[y] + d[y]) - d'[LCA(x,y)]$$ 于是我们考虑将分治区域内的节点在第二棵…
题意 给你两个有 \(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…
题目:https://loj.ac/problem/2553 第一棵树上的贡献就是链并,转化成 ( dep[ x ] + dep[ y ] + dis( x, y ) ) / 2 ,就可以在第一棵树上写边分治,把两边的点到第二棵树上建虚树,在虚树上 DP ,那么虚树上的当前点就是它不同子树里点的 lca ,所以记 dp[ cr ][ 0/1 ] 表示该点子树里 “第一棵树边分治的两个点集” 里最大的两个贡献:用当前点的深度作为 “第二棵树的 lca 深度” 来更新答案即可. 一直 TLE . #…
传送门 看到要求两棵树的 \(lca\) 深度不太好操作 考虑枚举第二棵树的 \(lca\),这样剩下的都是只和第一棵树有关的 而注意到 \(dis(x,y)=d(x)+d(y)-2d(lca(x,y))\) 那么 \(d(x)+d(y)-d(lca(x,y))=\frac{1}{2}(dis(x,y)+d(x)+d(y))\) 这样就好多了,可以直接沿用WC2018通道的做法 对于第一棵树进行边分治,把两边的集合合起来在第二棵树上建个虚树 然后在虚树上枚举 \(lca\),\(dp\) 统计不…
锟题x2 以下用$a\rightarrow b$表示端点为$a,b$的链 把式子写成$(h_1(x)+h_1(y)-h_1(lca))-h_2(lca')$,第一部分就是$x\rightarrow rt$和$y\rightarrow rt$的并的总长 考虑对第一棵树边分治,假设分治到$(u,v)$,我们想要统计所有跨过$(u,v)$的$x\rightarrow y$ 设在树$1$上$fa_v=u$,对于$u$这边的点$x$,令$f_x=-\infty,g_x=dis(x,u\rightarrow…
传送门 做一道题学一堆东西.jpg 猫老师的题--暴力拿的分好像比打挂的正解多很多啊--我纯暴力+部分分已经能有80了--正解没调对之前一直只有10分→_→ 先说一下什么是边分治.这个其实类似于点分治,不过分治对象从点换成边了,就是每次找到一条边,使其断开之后的两个连通块中最大的最小 于是我们就可以--等会儿如果在菊花图上怎么办?不是得卡到\(O(n^2)\)了? 不难发现这个东西的复杂度和节点的度数有关,于是为了假装这个东西能用避免这些情况,我们要把图给重构喽 简单来说就是通过加入虚点,把图给…
题目大意 \(T\)(\(T\leq100\))组询问 有\(1\)到\(n\)(\(n\leq50000\))这\(n\)个整数组成的一个排列 定义这个排列的一个子区间是"连续"的,当且仅当这个子区间在位置上和在值域上都是连续的 分别给出这个排列以每个位置\(i\)为右端点的最长"连续"子区间的长度\(l_i\),问有多少个排列满足这个条件 题解 发现这些最长"连续"子区间一定是相互包含或相离的,不会相交 用反证法:假设有\(x<y\),…
题目大意 有\(n\)(\(n\leq200\))个非负整数\(m_1,m_2,...,m_n\)(\(\forall i\in[1,n],m_i\leq100\)),有\(q\)(\(q\leq2*10^5\))个操作,每个操作是以下两种之一: (1)给出位置\(x\),概率\(q\),若\(m_x\)大于0,则有\(q\)的概率将\(m_x\)减一:若\(m_x\)为0,则不进行任何操作 (2)给出一个数\(k\)和\(k\)个不重复的位置\(d_1,d_2,...d_k\),在\(m_{d…
题目:https://loj.ac/problem/2339 两棵树的话,可以用 CTSC2018 暴力写挂的方法,边分治+虚树.O(nlogn). 考虑怎么在这个方法上再加一棵树.发现很难弄. 看了看题解,发现两棵树还有别的做法. 就是要最大化 d1[ x ] + d2[ x ] + d1[ y ] + d2[ y ] - 2*d1[ lca1(x,y) ] - 2*d2[ lca2(x,y) ] ,考虑在第一棵树 T1 上 dfs 地枚举 lca1 ,那么考虑的答案就是 T1 上在当前点 c…
我把这题推荐给yyb让他把这题做它的T2他竟然不要QwQ....... 题目大意: 下发八个题目和对应的八份代码,请构造数据Hack下发代码. Task1 下发代码用了一些神奇做法实现A + B = C这个操作,由于 |A|,|B| <= 100,所以暴力for即可. for(int a = -100; a <= 100; a ++) for(int b = -100; b <= 100; b ++) { if(ADD(a ^ b, (a & b) << 1) !=…
[洛谷题面]https://www.luogu.org/problemnew/show/P4221 这个题以及[CTSC2018 暴力写挂]都有类似的乱搞做法能通过考场数据. 具体搞法就是随一个起点,找一个离他最远(按题目要求计算的贡献最大)的点,让后再令 \(now=mxpoint\) 不断迭代上述过程. 然后整个上述过程最好也要不断重复进行,直到卡满时限为止就好. 多调随机种子就好. #include<cstdio> #include<vector> #include<a…
CTSC2018&APIO2018游记 Day 0 傍晚出发,从长沙通往帝都的软卧哟. 然而长沙某中学坐高铁比我们晚出发还早到 Day 1 为了正经地写游记我决定忍住不在博客里吐槽酒店. 午饭在八十中.学校很nice,机房也不错(主要是机子配置好). 居然有个Day 0?打开一看,看见了什么眼熟的东西. 九省联考Day 1.话说那道coat我到现在都还没写. 愉快地敲着FFT和NTT,其他的题目也不想写.就这么一直混到了晚饭. 晚上看了看去年CTSC的题.感觉不太妙啊. 不管了明天加油吧. Da…
CTSC2018 & APIO2018 颓废 + 打铁记 CTSC 5 月 6 日 完美错过报道,到酒店领了房卡放完行李后直接奔向八十中拿胸牌.饭票和资料.试机时是九省联考的题,从来没做过,我也不打算做了,随便试了下键盘.打了个 \(A + B\) problem 就离开了机房:找到了学弟学妹带他们回酒店颓-- 晚上定外卖,领队将密码条送来,一日无事. 5 月 7 日 上午 8:30 开始的考试推到了 9:06,好像不同考场开始时间还不一样?! 上来先看了看每道题,时限分别是 \(6\textt…
上学期没有去 GTSG,于是今天老师让我们来做一下 GTSG2018 Day1 & Day3 Day1 在上午当成一场考试来搞了,Day3 由于锅太多而且 T3 玄学而被放到下午自学... 上午 100 + 45(老师放的是后 19 组原数据和一组 hack 数据,所以只有 40,现场的话应该是 45 )+ 80 = 225 T1 假面 faceless n 个人,每个人有血量,q 次操作,现在有 2 种操作 1.指定一个人 x ,有 p 的概率扣他 1 滴血,一个人没有血,就死了 2.选出 k…
今天考了一次蜜汁省选,滚粗了.想了想,还是写点什么记录一下 8:10 折腾一番总算拿到题目和样例了,一打开dpf,立马感觉到了不对劲. 题目一股浓浓的劣质模拟题的画风,先不说题目质量,单是排版质量都被好一点的模拟赛甩几条街,更不要说正式比赛了 再仔细看了一眼题目名字,一股浓浓的坑爹感扑面而来. T1叫做序列计数什么的,看起来挺高级T2叫评分,估计又是一道SB模拟题T3就叫DIV,怕不是高精度除法T4叫合唱队形?????原题????合唱队形为啥会出在省选中?????? 8:15 折腾了一番后开始开…
关于noip2017的感想 晚自习没有事做,也不知道该干什么. 第一次参加noip提高组. 前2年参加普及还算不错,没有犯任何错误. 去年就做了几套历年真题,感觉500+很好拿呀. 但去年的时候看2016年的试题很吃力. 今年其实是抱着打450的目标去的. 这是初中生涯最后一次noip,也是本土作战的最后一次. 当然想为学校带来点什么了. 但是似乎今年整年的oi过得都特别不顺利. 去的时候信心还是挺足的. day0晚上住宾馆,不知道干些什么,但有点考砸的征兆,我也不清楚. day1.早上吃了早餐…
CTSC/APIO2018滚粗记 前言 从\(5.5\)晚上的火车到\(5.14\)早上的高铁 \(10\)天的时间真的过去的很快. 眨眼间,就到了今天晚上的颁奖. 至于结果如何,反而并不是那么重要了. 这次的比赛很明显的感受就是和全国的高手同台竞技, 不难感受到自己的实力果然还是弱. 也见到了\(dkw\)和\(refun\),果然大佬就是和我这种蒟蒻不一样, 我还是有很多的地方需要向别人学习. \(17-18\)这一年的比赛渐渐走向了尾声了. 我也应该抓紧时间让自己更强了. 对于这篇游记,我…