AT_arc029_3.[ARC029C] 高橋君と国家

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

高桥君正在游戏中经营一个国家。

国家有 NN 个城市和 MM 条道路。每条道路直接连接两个不同的城市,且道路中间没有其他城市。此外,任意两个城市之间,直接连接它们的道路最多只有一条。

最初,所有道路都未铺设,所有城市也都没有设置交易所。

为了国家的发展,高桥君决定铺设道路并设置交易所。

对于每个城市,只要满足以下任一条件,国家就被认为处于“良好状态”:

  • 该城市设置了交易所。
  • 该城市没有设置交易所,但可以仅通过已铺设的道路到达设置了交易所的其他城市。

城市编号为 11 到 NN,道路编号为 11 到 MM。在城市 ii 设置交易所需要 cic_i 枚金币。铺设第 ii 条道路需要 rir_i 枚金币。

由于金币有限,请你求出使国家处于“良好状态”所需金币的最小总数。

输入格式

输入通过标准输入给出,格式如下:

NN MM
c1c_1
c2c_2
⋮\vdots
cNc_N
a1a_1 b1b_1 r1r_1
a2a_2 b2b_2 r2r_2
⋮\vdots
aMa_M bMb_M rMr_M

  • 第 11 行包含两个整数 N (2≤N≤100 000)N\ (2 \leq N \leq 100\,000) 和 M (1≤M≤200 000)M\ (1 \leq M \leq 200\,000),表示有 NN 个城市和 MM 条道路。
  • 第 22 行到第 N+1N+1 行,每行一个整数 ci (1≤ci≤1 000 000 000)c_i\ (1 \leq c_i \leq 1\,000\,000\,000),表示在城市 ii 设置交易所需要的金币数。
  • 第 N+2N+2 行到第 N+M+1N+M+1 行,每行三个整数 aia_i, bi (1≤ai<bi≤N)b_i\ (1 \leq a_i < b_i \leq N), ri (1≤ri≤1 000 000 000)r_i\ (1 \leq r_i \leq 1\,000\,000\,000),表示第 ii 条道路连接城市 aia_i 和 bib_i,铺设该道路的花费为 rir_i。

输出格式

请输出使国家处于“良好状态”所需的最小金币总数。输出应以换行符结尾。

输入输出样例

  • 输入#1

    7 8
    40
    50
    30
    70
    70
    80
    80
    1 2 40
    1 3 50
    1 4 60
    2 5 90
    3 4 80
    4 5 110
    5 6 60
    6 7 50

    输出#1

    350
  • 输入#2

    3 3
    50
    50
    50
    1 2 60
    1 3 60
    2 3 60

    输出#2

    150
  • 输入#3

    5 7
    80
    70
    60
    50
    40
    1 3 20
    1 4 70
    1 5 30
    2 3 30
    2 4 90
    3 4 40
    4 5 80

    输出#3

    160

说明/提示

部分分

本题设有部分分。

  • 若能通过满足 N≤8N \leq 8 且 M≤10M \leq 10 的数据集 1,则可获得 10 分。
  • 若能通过满足 N≤12N \leq 12 且 M≤66M \leq 66 的数据集 2,则可获得额外 20 分。
  • 若能通过满足 N≤3 000N \leq 3\,000 且 M≤6 000M \leq 6\,000 的数据集 3,则可获得额外 30 分。
  • 若能通过无额外限制的数据集 4,则可获得额外 40 分。

样例解释 1

城市和道路的布局如下图所示。

按如下方式设置交易所和铺设道路:

  • 在城市 11 设置交易所,花费 4040 枚金币。
  • 在城市 33 设置交易所,花费 3030 枚金币。
  • 在城市 55 设置交易所,花费 7070 枚金币。
  • 铺设道路 11(连接城市 11 和 22),花费 4040 枚金币。
  • 铺设道路 33(连接城市 11 和 44),花费 6060 枚金币。
  • 铺设道路 77(连接城市 55 和 66),花费 6060 枚金币。
  • 铺设道路 88(连接城市 66 和 77),花费 5050 枚金币。

最终城市和道路的状态如下图所示。图中,设置了交易所的城市用双线框表示,铺设的道路用双线表示。

此时,国家处于“良好状态”。具体来说:

  • 城市 11 设置了交易所。
  • 城市 22 没有设置交易所,但可以通过已铺设的道路 11 到达设置了交易所的城市 11。
  • 城市 33 设置了交易所。
  • 城市 44 没有设置交易所,但可以通过已铺设的道路 33 到达设置了交易所的城市 11。
  • 城市 55 设置了交易所。
  • 城市 66 没有设置交易所,但可以通过已铺设的道路 77 到达设置了交易所的城市 55。
  • 城市 77 没有设置交易所,但可以通过已铺设的道路 77 和 88 到达设置了交易所的城市 55。

因此,总共需要 40+30+70+40+60+60+50=35040 + 30 + 70 + 40 + 60 + 60 + 50 = 350 枚金币。

样例解释 2

在所有城市都设置交易所会更便宜。

由 ChatGPT 4.1 翻译

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

首页