#P1063. 单向脉冲网络

单向脉冲网络

题目描述

一座自动化工厂中共有 nn 个中转站,编号为 11nn。中转站之间铺设了 mm 条双向运输轨道,整个轨道网络是连通的。

为了让货物能够按照固定方向运输,管理员需要为每条轨道指定一个运输方向,使其变成一条单向轨道。

出于安全要求,货物最多只能经过一条轨道。也就是说,完成方向设置后,运输网络中不能存在一条长度大于等于 22 的有向路径。

这里,一条长度为 kk 的有向路径表示货物能够沿着轨道方向连续经过 kk 条轨道。

请判断是否能够为所有轨道设置方向,使运输网络满足上述要求。如果可以,请输出任意一种合法的方向设置方案。

输入格式

  • 11 行:22 个整数 n,mn, m,分别表示中转站数量和轨道数量。
  • 接下来 mm 行:每行 22 个整数 ui,viu_i, v_i,表示第 ii 条双向轨道连接中转站 uiu_i 和中转站 viv_i

输入保证轨道网络连通,不存在连接同一个中转站的轨道,也不存在两条连接相同中转站对的轨道。

输出格式

如果无法为所有轨道设置满足要求的方向,输出一行:

NO

否则,第一行输出:

YES

第二行输出一个长度为 mm 的二进制字符串。

对于第 ii 条输入的轨道 (ui,vi)(u_i,v_i)

  • 如果字符串中的第 ii 个字符为 0,表示轨道方向为 uiu_i 指向 viv_i
  • 如果字符串中的第 ii 个字符为 1,表示轨道方向为 viv_i 指向 uiu_i

如果存在多种合法方案,输出任意一种即可。

样例

6 6
1 2
2 3
3 4
4 5
5 6
1 6
YES
010100
5 5
1 2
2 3
3 4
4 5
5 1
NO

样例说明

第一个样例

根据输出的字符串,各条轨道的方向依次为:

1 -> 2
3 -> 2
3 -> 4
5 -> 4
5 -> 6
1 -> 6

在这种设置下,中转站 1、3、5 只有向外运输的轨道,中转站 2、4、6 只有接收货物的轨道。

因此,货物经过一条轨道后无法继续沿其他轨道运输,网络中不存在长度大于等于 2 的有向路径。

第二个样例

这 5 条轨道组成一个环。

无论怎样设置轨道方向,都无法保证网络中不存在长度大于等于 2 的有向路径,因此输出 NO。

数据范围

  • 2n2×1052 \leq n \leq 2 \times 10^5
  • n1m2×105n-1 \leq m \leq 2 \times 10^5
  • 1ui,vin1 \leq u_i,v_i \leq n
  • uiviu_i \neq v_i
  • 输入的轨道网络保证连通
  • 输入中不存在自环和重边