luogu#P9466. [EGOI2023] Bikes vs Cars / 骑车与汽车

[EGOI2023] Bikes vs Cars / 骑车与汽车

题目背景

Day 1 Problem D.

题面译自 EGOI2023 bikesvscars

题目描述

在隆德,骑自行车是一种常见的交通方式,但有时狭窄的街道难以容纳骑车和自行车通行。为了改善这一状况,当地政府希望完全重新设计当地的街道网络。

隆德共有 NN 个关键位置(编号从 00N1N-1),人们常常在其间通行。人们通过一条路径在两地之间通行,其中路径是一系列的街道,从第一个地点到另一个。一种交通工具(车或自行车)可以在一条路径上通行,当且仅当经过的所有街道都至少与它一样宽。每个新修的街道连接关键位置其中之二,有着宽度 WW。这个宽度可以被任意分割为自行车道和机动车道。在隆德,一些工程师最近发明了宽度为 00 的车和自行车(它们可以在宽度为 00 的道路通行)。

这些工程师测量了城市中车和自行车的宽度。对于每一对关键位置,他们知道其间通行的最宽的车和最宽的自行车的宽度,但政府还要求更宽的车和自行车不能在其间通行。

形式化地,对于任意 i,ji,j0i<jN10\le i < j\le N-1),你都知道两个整数 Ci,jC_{i,j}Bi,jB_{i,j}。你的任务是构造一个街道网络连接这 NN 个位置。街道的宽度均为 WW,但对于任意街道 ss,你可以选择它的自行车道宽度 bsb_s 和机动车道宽度 WbsW-b_s。这个网络必须满足以下要求:

  • 必须可以在任意两个位置间通行。这可能需要一辆宽度为 00 的自行车或车。
  • 对于每一对位置 i,ji,j(其中 i<ji < j),可以只借助宽度至少为 Ci,jC_{i,j} 的机动车道,在 i,ji,j 间通行。同时,Ci,jC_{i,j} 是最大的有这一性质的数。这意味着,对于所有 i,ji,j 间的路径,必须满足至少一条街道的机动车道宽度不超过 Ci,jC_{i,j}
  • 对于每一对位置 i,ji,j(其中 i<ji < j),可以只借助宽度至少为 Bi,jB_{i,j} 的自行车道,在 i,ji,j 间通行。同时,Bi,jB_{i,j} 是最大的有这一性质的数。

你能帮隆德政府设计一个这样的街道网络吗?因为预算有限,你可以修建至多 20232023 条街道。你可以在同一对关键位置间修建多条街道,但你不能修建一条连接自己和自己的街道。所有街道都是双向的。

输入格式

第一行两个整数 N,WN,W,表示关键位置数量和街道宽度。

接下来 N1N-1 行包含 Ci,jC_{i,j}。其中的第 jj 行包含所有满足 i<ji < jCi,jC_{i,j}。因此第一行只会包含 C0,1C_{0,1},第二行包含 C0,2C_{0,2}C1,2C_{1,2},第三行包含 C0,3,C1,3,C2,3C_{0,3},C_{1,3},C_{2,3},以此类推。

接下来 N1N-1 行包含 Bi,jB_{i,j},格式同 Ci,jC_{i,j}

输出格式

如果不存在符合要求的街道网络,输出 NO

否则,第一行一个整数 MM,表示你修建的街道数。

接下来 MM 行,每行三个整数 u,v,bu,v,b,表示一条自行车道宽度为 bb(机动车道宽度为 WbW-b)的连接 u,vu,v 的街道。

你可以使用至多 20232023 条街道。你输出的街道必须满足 0bW0\le b\le W0u,vN10\le u,v\le N-1uvu\ne v。你可以在同一对关键位置间使用多条街道(可以有不同的自行车道宽度)。

如果有多解,你可以输出任意一个。

2 1
1
1
2
0 1 0
0 1 1
4 1
0
0 1
0 0 1
1
1 1
1 1 1
NO
6 6
5
4 4
1 1 1
1 1 1 3
1 1 1 5 3
2
3 2
6 2 3
3 2 5 3
3 2 4 3 4
8
0 1 1
0 2 3
1 2 2
0 3 6
2 4 5
3 4 3
3 5 1
4 5 4

提示

样例 11 解释

在样例 11 中,街道的宽度为 11,我们需要宽度至少为 11 的自行车道和机动车道各一条连接 0,10,1。解决方案是用两条分开的街道连接,一条自行车道宽度为 11,另一条机动车道宽度为 11


样例 22 解释

在样例 22 中,街道的宽度依然是 11,需要有一条宽度为 11 的自行车道连接任意两个关键位置,且有宽度为 11 的机动车道连接 1,21,22,32,3。这与 C1,3=0C_{1,3}=0 矛盾,不应该有宽度为 11 的从 1133 的机动车道,而我们可以合并两条先前提到的路径组成这样一条路径。因此不可能构造出一个符合要求的街道网络。


样例 33 解释

在样例 33 中,下图的街道网络满足所有要求。例如,应该有一条宽度为 1=C0,51=C_{0,5} 的机动车道在 0,50,5 之间(路径 02450\to 2\to 4\to 5),一条宽度为 3=B0,53=B_{0,5} 的自行车道在 0,50,5 之间(路径 03450\to 3\to 4\to 5)。同时,可以验证,不存在路径有着更大的宽度下限。注意样例 33 可能有很多其他解法。


数据范围

对于全部数据,2N5002\le N\le 5001W1061\le W\le 10^60Ci,j,Bi,jW0\le C_{i,j},B_{i,j}\le W

  • 子任务一(1010 分):所有 Ci,jC_{i,j} 都相同,所有 Bi,jB_{i,j} 都相同,N40N\le 40
  • 子任务二(55 分):所有 Ci,jC_{i,j} 都相同,所有 Bi,jB_{i,j} 都相同。
  • 子任务三(1717 分):N40N\le 40
  • 子任务四(1818 分):W=1W=1
  • 子任务五(1919 分):所有 Bi,jB_{i,j} 都相同。
  • 子任务六(3131 分):无特殊限制。