AT_arc026_4.[ARC026D] 道を直すお仕事
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在“ダイナミック王国”中有 N 个村庄,编号从 0 到 N−1。这些村庄原本通过 M 条道路连成一个整体。“连成一个整体”指的是,从任意一个村庄出发,都可以通过若干条道路到达任意其他村庄。某天,一场大灾害摧毁了所有的道路,导致村庄之间无法互相通行。你受国王高桥君的委托,负责修复道路,使“ダイナミック王国”的 N 个村庄重新连成一个整体。
你首先估算了修复每条道路所需的费用和时间。接下来,你需要计算在合理选择要修复的道路时,“能够收支平衡的最低时薪”的最小值。“能够收支平衡的最低时薪”指的是,当“修复道路所需的总时间”乘以“时薪”恰好等于“修复道路所需的总费用”时的“时薪”金额。
请注意,不一定需要修复所有的道路,也可以修复一些对连通村庄整体并非必要的道路。
输入格式
输入通过标准输入按以下格式给出。
N M
A1 B1 C1 T1
A2 B2 C2 T2
⋮
AM BM CM TM
- 第 1 行包含两个整数 N (2≤N≤104) 和 M (1≤M≤104),分别表示村庄的数量和道路的数量。
- 接下来的 M 行,每行包含四个整数 Ai (0≤Ai≤N−1),Bi (0≤Bi≤N−1),Ci (1≤Ci≤106),Ti (1≤Ti≤106),表示有一条连接村庄 Ai 和 Bi 的道路,修复这条道路需要费用 Ci,需要时间 Ti。
此外,关于道路的信息,保证以下条件成立:
- 对所有 i,有 Ai=Bi。
- 对所有 i=j,有“Ai=Aj 或 Bi=Bj”且“Ai=Bj 或 Bi=Aj”。
输出格式
请输出“能够收支平衡的最低时薪”的最小值,输出一行。
只要输出的绝对误差不超过 10−2 即可。
输出末尾需换行。
输入输出样例
输入#1
3 2 0 1 5 3 1 2 5 2
输出#1
2
输入#2
3 3 0 1 1 1 1 2 3 1 2 0 2 1
输出#2
1.500
输入#3
4 4 0 1 1 1 1 2 1 1 2 0 1 1 0 3 5 3
输出#3
1.3333333
说明/提示
部分分
本题设置了部分分。
- 若能正确解决所有 M≤16 的测试用例,可获得 20 分。
样例解释 1
在本例中,为了使所有村庄连通,必须修复所有道路。修复所有道路所需的总费用为 10,总时间为 5,因此能够收支平衡的最低时薪为 2。由于允许误差 10−2,输出 2.01 或 1.99 等也可以。
样例解释 2
在本例中,修复第 1 条和第 3 条道路时,“能够收支平衡的最低时薪”为 1.5,且为最小值。
样例解释 3
在本例中,修复所有道路时,“能够收支平衡的最低时薪”为 1.333…,且为最小值。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?