首页 > 二叉苹果树
头像 ray52033
发表于 2020-01-04 22:40:04
今天讲了树形dp,正好看到这道题,仔细一看,这不是板题吗(滑稽)。 咳咳,强行切入正题 首先,我们根据样例画出一张无比丑陋的图: 现在我们减去1的右枝就得到了下面这张图: 如果减去1的左枝: 如果保留1的左右枝,左子树保留条,右子树保留条,使得 由此可以推出:对于任意子树,若要保留其条枝,均可按减掉 展开全文
头像 在刷题的单身狗很开心
发表于 2023-10-22 10:23:07
本题中很大不同点在于他给的是边的数值,而正常的树的问题是在节点上给值。那么我们采用边值下放点的做法,这样就是正常的树问题了。 那么对于某一个节点来说它保留j个节点所得到的最大苹果树取决于这j个节点来自于左边子树多少,来自右边子树多少。又因为他自身就有一个节点所以状态转移方程为: &nbs 展开全文
头像 lifehappy
发表于 2020-08-09 18:37:04
二叉苹果树 思路 一般的树都是对节点进行统计或者计算,但是这题是对边进行统计计算,所以要稍加特殊处理,貌似我这种方法处理的比较微妙。 我们按照传统定义表示节点连接了条边的果子数量最大值,所以我们显然可以对当前节点进行统计枚举: for(int i) for(int j) 两重循环,表示的是该 展开全文
头像 Ray.C.L
发表于 2020-08-11 16:00:40
思路:题中说明这是标准的二叉树,给我们q个枝那说明连了q+1的点,我们就可以吧边的权值用节点去存,用dp[i][j]表示以i为根节点,连了共j个节点的最大值,因为每个节点只有2个或0个子节点,那么我们枚举2个子节点可能连接的节点数,我们先dfs一次去求出每个节点的2个子节点分别是谁,并在此时给节点附 展开全文
头像 瑜画
发表于 2020-08-08 12:29:31
首先看到题目的第一反应,就是边上的权值不好处理,感觉非常麻烦,仔细一看,可以把边pushdown,反正一个结点只有一个父亲,那么就把边的权值放到对应孩子结点上,那么就大功告成了。用二维数组求解问题,确定状态,用dp[root][y]表示结点root保留y个点(下放完事了以后是点,点会比边多一个,最后 展开全文
头像 cboy__
发表于 2020-08-13 13:22:33
题意 以1为根节点,保留q个边与1连通。最大的边权和。 思路 ,暴力? or or 每个结点取子树 条边,暴力n^2枚举,表示以 为根的子树保留 条边的最大权值和。dp转移方程前提条件: 题目链接 //#pragma GCC optimize(2) //#pragma GCC targ 展开全文
头像 CH_cycyc
发表于 2025-02-15 14:40:19
链接:https://ac.nowcoder.com/acm/problem/50505 来源:牛客网 题目描述 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共N个节点,标号1至N,树根编号一定为1。 我们用一根树枝两端连接的节点 展开全文
头像 sunsetcolors
发表于 2020-08-13 15:57:49
二叉苹果树 题目地址: https://ac.nowcoder.com/acm/problem/50505 基本思路: 树形背包的过程,设表示以为根有条树枝的子树上的最大的苹果数是多少,对于每棵子树,我们每次转移时可以得到如下的转移方程: 也就是说我们可以从已经处理的子树上选择个树枝的子树 展开全文
头像 Z_L_G
发表于 2025-05-16 16:18:29
题意 对于一个有n个结点的二叉树,根的编号一定为1,每条边有权值 求保留q条边时,最多能获得多少权值 tip:分析样例可以知道,这棵树的根是必须保留的,“剪枝行为”一定是保留根含有根的子树 思路(法一) 由于输入是无规律的输入每一条边,所以应当先建立起二叉树,从根开始深搜建树 由于边权是较难处 展开全文
头像 下次一定中奖
发表于 2020-08-16 21:51:30
原题链接:https://ac.nowcoder.com/acm/problem/50505 题目大意: 有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共N个节点,标号1至N,树根编号一定为1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵有四根树枝的苹果 展开全文