QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 1024 MB Points totaux : 100

#2776. 管道流之子

Statistiques

两年前,你成功帮助家乡安装了全国首个 Flubber 管道网络。民意调查显示,每个人都喜欢在厨房里拥有自己的 Flubber 分配器,现在一些有进取心的市民发现了它的新用途。显然,Flubber 与水混合后可以帮助扑灭火灾!这是一个非常及时的发现,因为失控的火灾最近变得出奇地频繁。

家乡的市议会希望利用 Flubber 的这一特性,在一个中心位置建立 Flubber/水混合站。该站被称为 Flubber 部门(FD),它还将配备受过专门训练的员工,前往火灾现场并利用处理过的 Flubber 来控制火势。

城市各处已经铺设好了管道。你需要根据给定的管道布局,确定如何将 Flubber 从 Flubber 工厂、水从本地水源通过管道输送到 FD。

请注意,Flubber 和水将在同一个管道网络中流动,甚至可能流经同一根管道。所有管道都是双向的,但 Flubber 和水不能在同一根管道中向相反方向移动。此外,如果两种液体在同一根管道中向同一方向输送,它们不可避免地会混合。因此,网络中的节点配备了特殊的膜和过滤器,使你能够根据需要分离和重组所有流入的混合物。该网络是一个封闭系统,因此流入节点的每种流体的总速率必须等于流出该节点的总速率,流体源头和目的地(FD)除外。

每根管道都有一定的容量。Flubber 比较粘稠,其粘度值为 $v$,因此一根能输送 $v$ 升/秒水的管道只能输送 1 升/秒的 Flubber。管道的容量对于两者的混合物呈线性比例缩放。具体来说,如果 $c$ 表示管道的水容量,$f$ 和 $w$ 分别是流经管道的 Flubber 和水的速率(均以升/秒为单位),则容量约束由不等式 $v \cdot f + w \le c$ 给出。

你主要关心的是平衡到达 FD 的混合物。你希望总液体量尽可能多,但你也需要足够的水——因为未稀释的 Flubber 是高度易燃的——并且需要足够的 Flubber——因为没有 Flubber 就称不上是“Flubber 部门”!你提出了一个公式来衡量最终混合物的“价值”:$F^a \cdot W^{1-a}$,其中 $F$ 是流入的 Flubber 速率(升/秒),$W$ 是流入的水的速率(升/秒),$a$ 是一个介于 0 和 1 之间的给定常数。

确定可以达到的 $F^a \cdot W^{1-a}$ 的最大值,以及实现该值的 Flubber 和水的输送路径。

输入格式

输入的第一行包含位置数量 $n$ ($3 \le n \le 200$),管道数量 $p$ ($n - 1 \le p \le \frac{1}{2}n(n - 1)$),以及实数 $v$ ($1 \le v \le 10$) 和 $a$ ($0.01 \le a \le 0.99$)。位置编号为 1 到 $n$;1 是 Flubber 工厂,2 是水源,3 是 FD。实数最多有 10 位小数。

接下来的 $p$ 行,每行描述一根管道。每行包含两个整数 $j$ 和 $k$ ($1 \le j < k \le n$),表示管道连接的位置,以及一个整数 $c$ ($1 \le c \le 10$),表示管道的水容量(升/秒)。

没有两根管道连接同一对位置。此外,保证网络是连通的。

输出格式

首先,对于每根管道(按输入给出的顺序),显示两个值:流经该管道的 Flubber 速率,以及流经该管道的水的速率(如果液体从 $k$ 移动到 $j$,则为负值),使得 $F^a \cdot W^{1-a}$ 最大化。然后显示该最大值,精确到绝对误差 $10^{-4}$ 以内。

如果存在多种方案,任何一种均可。所有约束(不在同一根管道中向相反方向发送 Flubber 和水、流量守恒、管道容量,以及构建的解与其声称的价值之间的一致性)必须在 $10^{-4}$ 的绝对误差内得到满足。

样例

样例输入 1

6 6 3.0 0.66
2 4 8
4 6 1
3 6 1
4 5 5
1 5 7
3 5 3

样例输出 1

0.000000000 1.360000000
0.000000000 1.000000000
0.000000000 -1.000000000
0.000000000 0.360000000
0.880000000 0.000000000
-0.880000000 -0.360000000
1.02037965897

样例输入 2

5 5 1.0 0.5
1 2 10
2 3 10
3 4 10
4 5 10
3 5 10

样例输出 2

5 0
5 5
4.2 3.14159
4.2 3.14159
-4.2 -3.14159
5

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.