CF1666K.Kingdom Partition

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

国王已去世。在国王统治期间,王国中的所有道路都破败不堪,需要修复。国王的三个孩子,Adrian,Beatrice 和 Cecilia,正在将王国瓜分给他们自己。

Adrian 和 Beatrice 彼此不喜欢对方,并且不打算在未来保持任何联系。Cecilia 分别与他们两个关系良好。此外,王国的大多数工人都支持 Cecilia,因此她拥有更好的资源和更多的机会修复基础设施和发展经济。

Cecilia 提议将王国分为三个区域:A区(给 Adrian)、B区(给 Beatrice)和 C区(给 Cecilia),并让 Adrian 和 Beatrice 协商并选择他们想要放在各自区域内的城镇,并达成对如何将王国分割成三个区域的协议。

Adrian 的城堡位于城镇 A,而 Beatrice 的城堡位于城镇 B。因此,Adrian 希望他的城堡位于 A 区,而 Beatrice 希望她的城堡位于 B 区。Cecilia 没有城堡,所以 C 区可以不包含任何城镇。

Adrian 和 Beatrice 面临一个问题。当他们选择了城镇之后,他们将需要支付道路修复的费用。

修复长度为 ll 的道路所需费用为 2⋅l2\cdot l 金币。然而,Adrian 和 Beatrice 并不需要承担所有的修复费用。他们所需承担的长度为 ll 的道路修复费用取决于它连接的城镇:

  • 对于连接 A 区内的两个城镇之间的道路,Adrian 需要支付 2⋅l2\cdot l 金币的费用。
  • 对于连接 B 区内的两个城镇之间的道路,Beatrice 需要支付 2⋅l2\cdot l 金币的费用。
  • 对于连接 A 区和 C 区之间的城镇的道路,Adrian 需要支付 ll 金币的费用,剩下的费用由Cecilia承担。
  • 对于连接 B 区和 C 区之间的城镇的道路,Beatrice 需要支付 ll 金币的费用,剩下的费用由Cecilia承担。

连接 A 区和 B 区的城镇之间的道路将不会修复,因为 Adrian 和 Beatrice 没有打算使用它们,所以没有人为它们支付费用。Cecilia 将自己修复连接 C 区内的城镇的道路,因此 Adrian 和 Beatrice 也不需要承担修复费用。

Adrian 和 Beatrice 希望尽量减少在道路修复上的总花费。找到他们将王国分割成三个区域的最便宜的方式。

输入格式

第一行包含两个整数 nn 和 mm ——城镇的数量和王国中道路的数量 (2≤n≤1000;0≤m≤2000)(2\le n\le 1000;0 \le m\le 2000)。

第二行包含两个整数 aa 和 bb,表示必须位于 A 区和 B 区的城镇 aa 和 bb (1≤a,b≤n;a≠b)(1\le a,b\le n;a\ne b)。

接下来 mm 行描述了王国中的道路。第 ii 行包含三个整数 uiu_i,viv_i,lil_i,表示一条在 uiu_i 和 viv_i 之间长度为 lil_i 的道路 (1≤ui,vi≤n;ui≠vi;1≤li≤109)(1\le u_i,v_i\le n;u_i\ne v_i;1\le l_i\le 10^9)。

两个城镇之间之多只有一条道路(即无重边)。

输出格式

第一行输出一个整数,表示 Adrian 和 Beatrice 修复道路的最小总费用。

第二行输出一个由 nn 个字符 'A'、'B' 和 'C' 组成的字符串,其中第 ii 个字符表示第 ii 个城镇应属于的区域。

如果存在多种最便宜的王国分割方式,可以输出其中任意一种。

输入输出样例

  • 输入#1

    6 7
    1 3
    1 2 10
    2 3 5
    1 3 7
    4 5 3
    3 6 100
    4 6 3
    5 6 8

    输出#1

    16
    ABBCBA

说明/提示

样例解释

以下图片说明了示例情况。Adrian 和 Beatrice 不支付虚线道路的费用,他们支付 2⋅l2\cdot l 的费用用于修复加粗道路,以及 ll 的费用用于修复实线道路。

所以总花费是 2⋅5+3+3=162\cdot 5 + 3 + 3 = 16;

Adrian 和 Beatrice 的城堡位于图中加粗的城镇

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

首页