CF1479C.Continuous City

省选/NOI-

通过率:0%

时间限制:2.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

Some time ago Homer lived in a beautiful city. There were nn blocks numbered from 11 to nn and mm directed roads between them. Each road had a positive length, and each road went from the block with the smaller index to the block with the larger index. For every two (different) blocks, there was at most one road between them.

Homer discovered that for some two numbers LL and RR the city was (L,R)(L, R)-continuous.

The city is said to be (L,R)(L, R)-continuous, if

  1. all paths from block 11 to block nn are of length between LL and RR (inclusive); and
  2. for every L≤d≤RL \leq d \leq R, there is exactly one path from block 11 to block nn whose length is dd.

A path from block uu to block vv is a sequence u=x0→x1→x2→⋯→xk=vu = x_0 \to x_1 \to x_2 \to \dots \to x_k = v, where there is a road from block xi−1x_{i-1} to block xix_{i} for every 1≤i≤k1 \leq i \leq k. The length of a path is the sum of lengths over all roads in the path. Two paths x0→x1→⋯→xkx_0 \to x_1 \to \dots \to x_k and y0→y1→⋯→yly_0 \to y_1 \to \dots \to y_l are different, if k≠lk \neq l or xi≠yix_i \neq y_i for some 0≤i≤min⁡k,l0 \leq i \leq \min{k, l}.

After moving to another city, Homer only remembers the two special numbers LL and RR but forgets the numbers nn and mm of blocks and roads, respectively, and how blocks are connected by roads. However, he believes the number of blocks should be no larger than 3232 (because the city was small).

As the best friend of Homer, please tell him whether it is possible to find a (L,R)(L, R)-continuous city or not.

不久之前,荷马住在一座美丽的城市里。这座城市共有 nn 个街区,编号从 11 到 nn,以及 mm 条有向道路连接这些街区。每条道路具有正的长度,且所有道路均从编号较小的街区指向编号较大的街区。任意两个(不同的)街区之间至多只有一条道路。

荷马发现,对某两个数 LL 和 RR,该城市是 (L,R)(L, R)-连续的。

若一个城市满足以下两个条件,则称其为 (L,R)(L, R)-连续的:

  1. 所有从街区 11 到街区 nn 的路径长度均在区间 [L,R][L, R] 内(含端点);
  2. 对每个满足 L≤d≤RL \leq d \leq R 的整数 dd,恰好存在一条从街区 11 到街区 nn 的路径,其长度为 dd。

从街区 uu 到街区 vv 的一条路径定义为一个序列 u=x0→x1→x2→⋯→xk=vu = x_0 \to x_1 \to x_2 \to \dots \to x_k = v,其中对每个 1≤i≤k1 \leq i \leq k,均存在一条从街区 xi−1x_{i-1} 指向街区 xix_i 的道路。一条路径的长度定义为该路径中所有道路长度之和。两条路径 x0→x1→⋯→xkx_0 \to x_1 \to \dots \to x_k 和 y0→y1→⋯→yly_0 \to y_1 \to \dots \to y_l 被视为不同,当且仅当 k≠lk \neq l,或存在某个 0≤i≤min⁡{k,l}0 \leq i \leq \min\{k, l\} 使得 xi≠yix_i \neq y_i。

搬家到另一座城市后,荷马只记得这两个特殊数值 LL 和 RR,却忘记了街区数量 nn、道路数量 mm,以及街区之间的具体连接方式。不过,他确信街区总数不会超过 3232(因为那座城市很小)。

作为荷马最好的朋友,请你告诉他:是否存在一个 (L,R)(L, R)-连续的城市?

输入格式

The single line contains two integers LL and RR (1≤L≤R≤1061 \leq L \leq R \leq 10^6).

单行包含两个整数 LL 和 RR(1≤L≤R≤1061 \leq L \leq R \leq 10^6)。

输出格式

If it is impossible to find a (L,R)(L, R)-continuous city within 3232 blocks, print "NO" in a single line.

Otherwise, print "YES" in the first line followed by a description of a (L,R)(L, R)-continuous city.

The second line should contain two integers nn (2≤n≤322 \leq n \leq 32) and mm (1≤m≤n(n−1)21 \leq m \leq \frac {n(n-1)} 2), where nn denotes the number of blocks and mm denotes the number of roads.

Then mm lines follow. The ii-th of the mm lines should contain three integers aia_i, bib_i (1≤ai<bi≤n1 \leq a_i \lt b_i \leq n) and cic_i (1≤ci≤1061 \leq c_i \leq 10^6) indicating that there is a directed road from block aia_i to block bib_i of length cic_i.

It is required that for every two blocks, there should be no more than 1 road connecting them. That is, for every 1≤i<j≤m1 \leq i \lt j \leq m, either ai≠aja_i \neq a_j or bi≠bjb_i \neq b_j.

如果无法在最多 3232 个街区范围内构造出一个 (L,R)(L, R)-连续城市,则在一行中输出 "NO"。

否则,在第一行输出 "YES",随后描述一个 (L,R)(L, R)-连续城市。

第二行应包含两个整数 nn(2≤n≤322 \leq n \leq 32)和 mm(1≤m≤n(n−1)21 \leq m \leq \frac {n(n-1)} 2),其中 nn 表示街区数量,mm 表示道路数量。

接下来是 mm 行。第 ii 行应包含三个整数 aia_i、bib_i(1≤ai<bi≤n1 \leq a_i \lt b_i \leq n)和 cic_i(1≤ci≤1061 \leq c_i \leq 10^6),表示存在一条从街区 aia_i 指向街区 bib_i 的有向道路,其长度为 cic_i。

要求:任意两个街区之间至多只有一条道路相连。即,对任意 1≤i<j≤m1 \leq i \lt j \leq m,均有 ai≠aja_i \neq a_j 或 bi≠bjb_i \neq b_j。

输入输出样例

  • 输入#1

    1 1

    输出#1

    YES
    2 1
    1 2 1
  • 输入#2

    4 6

    输出#2

    YES
    5 6
    1 2 3
    1 3 4
    1 4 5
    2 5 1
    3 5 1
    4 5 1

说明/提示

In the first example there is only one path from block 11 to block n=2n = 2, and its length is 11.

In the second example there are three paths from block 11 to block n=5n = 5, which are 1→2→51 \to 2 \to 5 of length 44, 1→3→51 \to 3 \to 5 of length 55 and 1→4→51 \to 4 \to 5 of length 66.

在第一个例子中,从方块 11 到方块 n=2n = 2 只有一条路径,其长度为 11。

在第二个例子中,从方块 11 到方块 n=5n = 5 共有三条路径,分别为:长度为 44 的路径 1→2→51 \to 2 \to 5、长度为 55 的路径 1→3→51 \to 3 \to 5,以及长度为 66 的路径 1→4→51 \to 4 \to 5。

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

首页