P7177 题解

题目大意
整棵树的每条边都有流量的分配比率,部分边有“特殊性质”——将流经这条边的液体的流量平方。
现在给出每个叶子节点最终至少要流入的流量,求根节点至少要流出的流量是多少。
思路
为了叙述方便,下面将某个节点最少需要的 流量 称为该节点的“权值”。
首先我想到了一个类似于 解决普通数学问题 的做法:
将 答案,即 根节点的权值,设为
用此方法模拟一下样例
那么就可以得到两个方程:
第一个方程解得
取这两个节点的权值中最大的成为
但是上述方法的弊端也很明显,那就是不能轻松地带着
感觉后半部分从叶子节点向上 回溯同时进行统计 这个过程是没问题的,可以通过 DFS 来实现,那接下来考虑怎么得到叶子节点的 权值。
其实很简单,因为数据已经给出来了,所以直接进行 DFS,如果搜到叶子节点就可以通过 简单的处理 直接得到该节点的权值:
如果连接叶子节点及其父节点的边有“特殊性质”的话,那么就将输入数据中给出的权值开方,否则就不变。
最后带这个信息,按照上面叙述的步骤,向根节点回溯即可。
实现
从根节点向下 DFS,如果搜到了 叶子节点,就处理该点权值,并返回给父节点,否则继续向下搜索。
回溯时,将一个节点 向其每一个子节点搜索的返回值 取 最大值 后返回。
细节:
题目中说了
号点是根节点,但是不知道 号点的子节点都有哪些,无法开启搜索,所以钦定 号点为 号点的根节点,并由此开始搜索。 过程中有关计算的变量都定义为
double
类型,最后输出时保留到小数点后位(一般比题目要求多两位,这样做即可保证精度)。
1 |
|
- 标题: P7177 题解
- 作者: IfyoungY
- 创建于 : 2023-09-13 11:57:48
- 更新于 : 2023-09-13 12:02:23
- 链接: https://redefine.ohevan.com/2023/09/13/P7177-题解/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。