
树形DP
小王子y
互关啊!!
展开
-
旅游规划(树形DP,直径找点)
W 市的交通规划出现了重大问题,市政府下定决心在全市各大交通路口安排疏导员来疏导密集的车流。但由于人员不足,W 市市长决定只在最需要安排人员的路口安排人员。具体来说,W 市的交通网络十分简单,由 n 个交叉路口和 n−1 条街道构成,交叉路口路口编号依次为 0,1,…,n−1 。任意一条街道连接两个交叉路口,且任意两个交叉路口间都存在一条路径互相连接。经过长期调查,结果显示,如果一个交叉路口位于 W 市交通网最长路径上,那么这个路口必定拥挤不堪。所谓最长路径,定义为某条路径 p=(v1,v2,…,原创 2021-03-06 18:51:07 · 245 阅读 · 0 评论 -
牛之关系谱(DP)
农夫约翰正在考虑买进一批新的牛群。在这个新的牛群中,每头母牛都会生两个孩子。牛的关系可以用一个包含 N 个节点的二叉树来表示,此二叉树应满足下列性质:每个节点的子节点数为 0 或 2。树的高度等于 K。树的高度是指从根节点到任一叶子节点的最长路径上的节点数。叶子节点是指没有子节点的节点。请问,共有多少种可能的谱系结构?换句话说,共有多少种满足上述性质的 N 个节点的二叉树?请输出对 9901 取模后的答案。输入格式共一行,包含两个整数 N 和 K。输出格式共一行,包含一个整数,表示对原创 2021-02-28 01:32:36 · 208 阅读 · 0 评论 -
二叉苹果树(树形DP,分组背包)
有一棵二叉苹果树,如果树枝有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共 N 个节点,编号为 1 至 N,树根编号一定为 1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵苹果树的树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。这里的保留是指最终与1号点连通。输入格式第一行包含两个整数 N 和 Q,分别表示树的节点数以及要保留的树枝数量。接下来 N−1 行描述树枝信息,每行三个整数,前两个是它连接的节点的编号,第三个数是这根树枝上原创 2021-02-27 16:41:44 · 162 阅读 · 0 评论 -
战略游戏(树形DP)
鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他找不到解决问题的方法,这让他很伤心。现在他有以下问题。他必须保护一座中世纪城市,这条城市的道路构成了一棵树。每个节点上的士兵可以观察到所有和这个点相连的边。他必须在节点上放置最少数量的士兵,以便他们可以观察到所有的边。你能帮助他吗?例如,下面的树:只需要放置1名士兵(在节点1处),就可观察到所有的边。输入格式输入包含多组测试数据,每组测试数据用以描述一棵树。对于每组测试数据,第一行包含整数N,表示树的节点数目。接下来N行,每行按如下方法描述原创 2021-02-26 18:06:21 · 177 阅读 · 0 评论 -
数字转换(树形DP)
如果一个数 x 的约数之和 yy(不包括他本身)比他本身小,那么 x 可以变成 y,y 也可以变成 x。例如,4 可以变为 3,1 可以变为 7。限定所有数字变换在不超过 n 的正整数范围内进行,求不断进行数字变换且不出现重复数字的最多变换步数。输入格式输入一个正整数 n。输出格式输出不断进行数字变换且不出现重复数字的最多变换步数。数据范围1≤n≤50000输入样例:7输出样例:3样例解释一种方案为:4→3→1→74→3→1→7。1、如果一个数 x 的约数之和 y(不包括他本原创 2021-02-25 01:34:40 · 557 阅读 · 0 评论 -
树的最长路径(树形DP)
给定一棵树,树中包含 n 个结点(编号1n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示树的最长路径的长度。数据范围1≤n≤10000,1≤ai,bi≤n,−105≤ci≤105输入样例:65 1原创 2021-01-14 21:53:46 · 635 阅读 · 0 评论 -
树的重心(DFS,树形DP)
给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数m,表示将重心删除后,剩余各个连通块中点数的最大值。数据范围1≤n≤105输入样例91 21 71 42原创 2021-01-07 18:32:38 · 250 阅读 · 0 评论 -
第六届蓝桥杯省赛C++B组 生命之树(树形DP 详细解析)
在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。上帝要在这棵树内选出一个非空节点集 S,使得对于 S 中的任意两个点 a,b都存在一个点列 {a,v1,v2,…,vk,b} 使得这个点列中的每个点都是 S 里面的元素,且序列中相邻两个点间有一条边相连。在这个前提下,上帝要使得 S 中的点所对应的整数的和尽量大。这个最大的和就是上帝给生命之树的评分。经过 atm 的努力,他已经知道了上帝给每棵树上每个节点上的整数。但是由于 atm原创 2020-12-24 17:26:54 · 590 阅读 · 3 评论 -
没有上司的舞会 (树形DP)
Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i 号职员的快乐指数HiHi。接下来N-1行,每行输入一对整数L, K,表示K是L的直接上司。输出格式输出最原创 2020-12-24 15:11:15 · 121 阅读 · 0 评论