随笔分类 - 动态规划—树形
摘要:题意 "题目链接" Sol 比赛结束后才调出来。。不多说啥了,就是因为自己菜。 裸的up down dp,维护一下一个点上下的直径就行,一开始还想了个假的思路写了半天。。 转移都在代码注释里 ~~毒瘤题目卡空间~~ cpp include define Pair pair define MP(x,
阅读全文
摘要:题意 "链接" Sol 虚树。 首先建出虚树,然后直接树形dp就行了。 最大最小值直接维护子树内到该节点的最大值,然后合并两棵子树的时候更新一下答案。 任意两点的路径和可以考虑每条边两边的贡献,$d[x]$表示到该节点的所有节点的路径和,转移的时候考虑一下两棵子树的siz就行(画一下图就很清楚了)
阅读全文
摘要:题意 "题目链接" Sol 首先不难想到一个dp,设$f[i][j]$表示$i$的子树内选择的最小值至少为$j$的最大个数 转移的时候维护一个后缀$mx$然后直接加 因为后缀max是单调不升的,那么我们可以维护他的差分数组(两个差分数组相加再求和 与 对两个原数组直接求和是一样的) 向上合并的过程中
阅读全文
摘要:题意 "题目链接" Sol 很套路的题 直接考虑每个边的贡献,最后再把奇数点的贡献算上 cpp include define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second define int l
阅读全文
摘要:题意 "题目链接" Sol 首先一个很显然的思路是直接用$f[i][j] / g[i][j]$表示$i$的子树中选了$j$个节点,该节点是否选的最小权值。但是直接这样然后按照树形背包的套路转移的话会有一种情况无法处理,就是说该节点不选,儿子节点也不选,这样我们就不清楚儿子节点的子节点的贡献了 一种暴
阅读全文
摘要:题意 "题目链接" Sol 一道很简单的树形dp,~~然而被我写的这么长~~ 分别记录下距离为$1/2$的点数,权值和,最大值。以及相邻儿子之间的贡献。 树形dp一波。。 cpp include define Fin(x) {freopen(x, "r", stdin);} define int l
阅读全文
摘要:题意 ~~[题目链接]~~版权原因就不发了。。 给出一棵树,求出任意两点之间期望距离的最大值 Sol 比较清真的一道题吧。。 设$f[x]$表示从$x$走到$x$的父亲的期望步数 $g[x]$表示从父亲走来的期望步数 $d[x]$表示$x$节点的度数 不难得到方程$f[x] = \sum_{to \
阅读全文
摘要:题意 ~~[题目链接]~~这怎么发链接啊。。。。。 有一个 $n$ 个点的树,每个点有点权(点权可能为负) ,求包含点$1$的最 大权连通子图(的权值和) 。 $n \leqslant 2500$ Sol 刚开始还以为是个树形依赖背包呢。。结果发现后面给的两个vector根本就没用 直接减一下得到每
阅读全文
摘要:题意 "题目链接" Sol 比较套路吧,设$f[i][j]$表示以$i$为根的子树中选了$j$个黑点对答案的贡献 然后考虑每条边的贡献,边的两边的答案都是可以算出来的 转移的时候背包一下。 cpp include define Pair pair define fi first define se
阅读全文
摘要:题意 "题目链接" $n$个节点的树,点有点权,找出互不相交的两条链,使得权值和最大 Sol ~~这辈子也不会写树形dp的~~ 也就是有几种情况,可以讨论一下。。 下文的“最大值”指的是“路径上权值和的最大值” 设$f[i][0]$表示以$i$为根的子树中选出两条不相交的链的最大值 $f[i][1]
阅读全文
摘要:题意 "题目链接" Sol 挺显然的树形背包吧。。 $f[i][j]$表示$i$这棵子树中答案为$j$的最大价值,转移的时候背包一下。。 第一次写树形背包,犯了两个错误 1. 枚举根节点的贡献时需要倒着枚举 2. 转移时需要注意$k = 0$的情况,不要出现重复转移
阅读全文
摘要:题目描述 在 W 星球上有 n 个国家。为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通。但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1 条双向道路。 每条道路的修建都要付出一定的费用,这个费用等于道路长度乘以道路两端 的国家个数之差的绝对值。例如,在下图中
阅读全文
摘要:Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量。在以米特为主要能源的D星上,这种米特能源的运输和储 存一直是一个大问题。D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都。这N个城市由N-1条单向高速 通道连接起来,构成一棵以1号城市(首部)为根的树,高速通道的方
阅读全文
摘要:Description 小Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅 存在一条通路(通路指连接两个元件的导线序列)。在电路板上存在一个特殊的
阅读全文
摘要:题目描述 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望都寄托在了骑士团的身上,
阅读全文
摘要:时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 查看运行结果 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 时间限制: 1 s 时
阅读全文
摘要:题目描述 某大学有N个职员,编号为1~N。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数Ri,但是呢,如果某个职员的上司来参加舞会了,那么这个职员就无论如何也不肯来参加舞会了。所以,请你编程计算
阅读全文
摘要:题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下: subtree的左子
阅读全文
摘要:题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。 我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树 2 5 \ / 3 4 \ / 1 现在这颗树枝条太多
阅读全文