首页 > 其他分享 >P5642 人造感情

P5642 人造感情

时间:2024-01-18 14:15:48浏览次数:29  
标签:子树内 text 占用 路径 人造 最大值 path 感情 P5642

P5642 人造感情
首先考虑如何求 \(W(U)\)。
对于路径 \((x,y,w)\),我们将它挂在 \(u=lca(x,y)\) 上,记 \(f_u\) 表示仅考虑 \(u\) 子树内的链获得的最大值,\(s_u=\sum_{v\in son_u}f_v\),表示仅考虑 \(u\) 子树内的链,且钦定 \(u\) 不被占用的最大值
\(s_u\) 易求,若 \(u\) 不被占用,\(f_u=s_u\),否则枚举挂在 \(u\) 上的路径 \((x,y,w)\),则 \(\text{path}(x,y)\) 上的点都不能被占用。
发现转移需要将下面图中的橙色子树 \(dp\) 值加起来:

发现其就是 \(s_u+\sum_{z\in \text{path}(x,y),z\neq u}s_z-f_z\),因此 \(f_u=\max(s_u,w+s_u+\sum_{z\in \text{path}(x,y),z\neq u}s_z-f_z)\)
和式用 DFS 序+树状数组维护一个点到根节点的 \(s_u-f_u\) 的和。
那么 \(f_1\) 就是原始答案。
为了求后面的答案,我们需要多维护一个 \(dp\):\(g_u\) 表示把 \(u\) 子树抛去后剩余部分的最大值。
在此之前,我们把所有路径的权值更新:\(w\leftarrow w+s_u+\sum_{z\in \text{path}(x,y),z\neq u}s_z-f_z\),表示在强制选这条边的情况下 \(u\) 子树内的最大值。
现在假设 \(g_u\) 已求出,尝试递推出 \(g_v\):
先更新挂在 \(u\) 节点上路径权值 \(w\leftarrow w+g_u\) 表示强制选这条边的情况下全局的最大值。

  • \(u\) 未被占用,\(g_v\leftarrow g_u+s_u-f_v\)。
  • \(u\) 被占用,且占用 \(u\) 的路径 \((x,y,w)\) 只有一个端点是 \(u\) 子树内的点(不能是 \(v\) 的后代),此时一定有 \(lca(x,y)\) 是 \(u\) 的祖先.
    \(g_v\leftarrow \max w-f_v\)。
  • u 被占用,且占用 \(u\) 的路径 \((x,y,w)\) 两个端点都是 \(u\) 子树内的点(不能是 \(v\) 的后代),那么该路径一定是挂在 \(u\) 上的。
    \(g_v\leftarrow \max w -f_v\)

考虑如何找到情况2和情况3中的路径:
对于情况2,我们在一个点 \(u\) 更新完所有子节点后,在递归前把挂在 \(u\) 上的路径按照端点 DFS 序将权值插入线段树中,这样情况2就只需在线段树中查询端点落在指定区间的最大值即可。
对于情况3,先将路径从大到小排序,然后暴力找到第一条不占用 \(v\) 的路径,由于一条路径只占用2个子节点,所以对于所有子节点,一条路径被“无效访问”的次数最多为 \(2\),因此暴力的复杂度是线性的。

在做了上述一堆准备工作后,现在考虑答案怎么求:
当插入一条路径 \((u,v)\) 后,将 \(\text{path}(u,v)\) 上的点都断开,然后将剩余连通块的最大值加起来,记为 \(val\),\(f_1-val\) 即为 \(f(u,v)\)。
对于上述中的连通块,它要么是一个子树,要么是原树剖去一个子树,分别对应之前求出的 \(f_u,g_u\)。

考虑对于每个节点 \(u\),统计 \(f_u\) 与 \(g_u\) 被计算的次数。

一条路径会算到 \(f_u\) 当且仅当 \(u\) 的父亲被经过而 \(u\) 不被经过,会算到 \(g_u\) 当且仅当 \(u\) 被经过而 \(u\) 的父亲不被经过,容斥计算上述的路径条数即可。

时间复杂度 \(\mathcal{O}(n\log n)\)。

标签:子树内,text,占用,路径,人造,最大值,path,感情,P5642
From: https://www.cnblogs.com/cooltyl/p/17972364

相关文章

  • 【爷爷赶集给娃买裤子拿去学校让试穿】隔代亲的感情一直都很让人动容
    爷爷赶集给娃买裤子拿去学校让试穿12月29日,贵州遵义一位爷爷赶集给孙子买了条裤子,拿去学校让孙子试穿。据老师介绍,老人是怕裤子不合适, 爷爷赶集给娃买裤子怕不合适拿去学校让试穿 网友:好暖心的爷爷啊爷爷在集市上精心挑选,终于找到了一条他觉得孩子会喜欢的裤子。他拿着这......
  • 体悟感情观
    所有的感情都是建立在充分了解对方,日久生情。要与他保持距离感,神秘感,分寸感。要矜持,要懂得给彼此营造空间。仔细思考自己有什么,别人又是因为什么看上你。你到底哪点值得被爱,不要过于主动和暧昧,给对方机会,哪怕是你有感觉的,对待感情,不能随便。对于伤疤,洒脱一点。不要给别人制造伤害......
  • 【树论典题】P5642 人造情感(emotion)
    P5642人造情感(emotion)随便挑点杂题做/kk。乐。不会做这个题,我难道还不会做CF856DMashaandCactus。先考虑后者怎么做?CF856DMashaandCactus乐。考虑在\(LCA\)上挂很多个chains.\[s_u=\sum_{v\inson_u}f_v,f_u=s_u\]\[t_i=\underset{(x_i,y_i,w_i)}......
  • 《 $P5642$ 人造情感 》解题报告
    究极套路题,挺有意思的\(qwq\)。首先我们记一些东西。记\(f(x)\)为\(x\)子树中选出的不交路径权值和最大是多少。记\(g(x)\)为\(x\)子树外的不交路径权值和最大是多少。如果有了这两个东西那么答案就很好计算了。那么\(f(1)\)实际上就是\(W(U)\)。\(----------......
  • springboot~ApplicationContextAware和Interceptor产生了真感情
    看着题目,有点一头污水吧,事实上,没有经历过,很难去说ApplicationContextAware在什么时候会用到,直接在一个bean对象里,你可以直接使用构造方法注入或者Autowired属性注入的方式来使用其它的bean对象,这在springboot里是非常自然的,也是天然支持的;但如果你的这个bean不是由springioc自动......
  • P5642 人造情感(emotion)
    P5642人造情感(emotion)洛谷:P5642人造情感(emotion)Solution子问题:HDU5293Treechainproblem这里直接把之前写的题解复制过来QWQ考虑dp。把链的信息挂在深度最浅的节点上,自下而上更新答案。记\(f_u\)表示\(u\)子树内的最大权值和,\(S\)表示挂在\(u\)上的某条链,\(so......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-我是没有感情的thief
    前言Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。在过去,网络数据包分析软件是非常昂贵,或是专门属于营利用的软件,Wireshark的出现改变了这一切。在GNU通用公共许可证的保障范围底下,用户可以......
  • 2012总结--第8篇--感情篇
    1.亲情家人2012年春上离开家里后,还没有回去过。只是偶尔给家里打个电话。家人倒是希望我早点回去。不知道为什么,我总有种“不成就一番伟业不回家"的感觉。这个儿子白养了”。这话太犀利了。无言以对!沉默!至亲家人没有见到,其他亲人就更不用说了。只是和......
  • R语言SVM支持向量机、文本挖掘新闻语料情感情绪分类和词云可视化
    支持向量机(SVM)是一种机器学习方法,基于结构风险最小化原则,即通过少量样本数据,得到尽可能多的样本数据。支持向量机对线性问题进行处理,能解决非线性分类问题。本文介绍了R语言中的SVM工具箱及其支持向量机(SVM)方法,并将其应用于文本情感分析领域,结果表明,该方法是有效的。在此基础上,对......
  • 洛谷 P5642 - 人造情感(换根 dp)
    想起来很轻松,写起来很酸爽的套路题。默认以\(1\)为根。先考虑怎么算单个\(f(u,v)\),我们定义一个连通块的权值为从该连通块中选出若干条点不相交的路径,选出的路径的权值之和的最大值。那么显然\(f(u,v)\)就是整棵树的权值\(-\)挖掉\((u,v)\)这条路径后各个连通块的权值之......