编程题
### 问题描述 你是一名环境工程师,负责模拟和预测森林火灾的传播。一片森林可以看作是由 $ N $ 个节点(代表区域)和 $ N-1 $ 条边(代表区域间的连通性)组成的树形结构。每个节点都有一个湿度值 $ H $。火焰传播的速度与相邻节点间的湿度差有关。 假设火焰传播的速度为相邻节点湿度差的正比,即速度 $ v = k \times |H_i - H_j| $ ,其中 $ H_i $ 和 $ H_j $ 是两个相邻节点的湿度值。 给定森林的这些参数、每两相邻节点之间的距离以及火焰传播速度的比例常数 $ k $,你的任务是预测火势会在多少时间内到达森林的每一个节点。由于这是火势的预测,时间需要向下取整。 ### 输入格式 第一行包含一个整数 $ N $ ,表示森林中节点的数量。 第二行包含 $ N $ 个整数,表示每个节点的湿度值 $ H $。 接下来的 $ N-1 $ 行,每行包含三个整数 $ u $、$ v $ 和 $ d $,表示节点 $ u $ 和节点 $ v $ 之间有一条距离为 $ d $ 的边。 倒数第二行包含一个整数,表示火灾开始的节点。 最后一行包含一个实数 $ k $,表示火焰传播速度的比例常数。 ### 输出格式 输出 $ N $ 个整数,分别表示火势到达每个节点所需的时间。如果火势不能到达某个节点,则输出 $-1$ 。 ### 样例输入 ``` 5 5 8 6 7 9 1 2 2 1 3 1 2 4 3 2 5 2 1 0.5 ``` ### 样例输出 ``` 0 1 2 7 5 ``` ### 评测数据范围 $ 1 \leq N \leq 10^5 $,$ 1 \leq H_i \leq 100 $,$ 1 \leq u, v \leq N $,$ 1 \leq d \leq 100 $,$ 0.01 \leq k \leq 10 $。
查看答案
赣ICP备20007335号-2