AT_arc026_4.[ARC026D] 道を直すお仕事

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在“ダイナミック王国”中有 NN 个村庄,编号从 00 到 N−1N-1。这些村庄原本通过 MM 条道路连成一个整体。“连成一个整体”指的是,从任意一个村庄出发,都可以通过若干条道路到达任意其他村庄。某天,一场大灾害摧毁了所有的道路,导致村庄之间无法互相通行。你受国王高桥君的委托,负责修复道路,使“ダイナミック王国”的 NN 个村庄重新连成一个整体。

你首先估算了修复每条道路所需的费用和时间。接下来,你需要计算在合理选择要修复的道路时,“能够收支平衡的最低时薪”的最小值。“能够收支平衡的最低时薪”指的是,当“修复道路所需的总时间”乘以“时薪”恰好等于“修复道路所需的总费用”时的“时薪”金额。

请注意,不一定需要修复所有的道路,也可以修复一些对连通村庄整体并非必要的道路。

输入格式

输入通过标准输入按以下格式给出。

NN MM
A1A_1 B1B_1 C1C_1 T1T_1
A2A_2 B2B_2 C2C_2 T2T_2
⋮\vdots
AMA_M BMB_M CMC_M TMT_M

  • 第 11 行包含两个整数 N (2≤N≤104)N\ (2 \leq N \leq 10^4) 和 M (1≤M≤104)M\ (1 \leq M \leq 10^4),分别表示村庄的数量和道路的数量。
  • 接下来的 MM 行,每行包含四个整数 Ai (0≤Ai≤N−1)A_i\ (0 \leq A_i \leq N-1),Bi (0≤Bi≤N−1)B_i\ (0 \leq B_i \leq N-1),Ci (1≤Ci≤106)C_i\ (1 \leq C_i \leq 10^6),Ti (1≤Ti≤106)T_i\ (1 \leq T_i \leq 10^6),表示有一条连接村庄 AiA_i 和 BiB_i 的道路,修复这条道路需要费用 CiC_i,需要时间 TiT_i。

此外,关于道路的信息,保证以下条件成立:

  • 对所有 ii,有 Ai≠BiA_i \neq B_i。
  • 对所有 i≠ji \neq j,有“Ai≠AjA_i \neq A_j 或 Bi≠BjB_i \neq B_j”且“Ai≠BjA_i \neq B_j 或 Bi≠AjB_i \neq A_j”。

输出格式

请输出“能够收支平衡的最低时薪”的最小值,输出一行。

只要输出的绝对误差不超过 10−210^{-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≤16M \leq 16 的测试用例,可获得 2020 分。

样例解释 1

在本例中,为了使所有村庄连通,必须修复所有道路。修复所有道路所需的总费用为 1010,总时间为 55,因此能够收支平衡的最低时薪为 22。由于允许误差 10−210^{-2},输出 2.012.01 或 1.991.99 等也可以。

样例解释 2

在本例中,修复第 11 条和第 33 条道路时,“能够收支平衡的最低时薪”为 1.51.5,且为最小值。

样例解释 3

在本例中,修复所有道路时,“能够收支平衡的最低时薪”为 1.333…1.333\ldots,且为最小值。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页