#P1063. 单向脉冲网络
单向脉冲网络
题目描述
一座自动化工厂中共有 个中转站,编号为 到 。中转站之间铺设了 条双向运输轨道,整个轨道网络是连通的。
为了让货物能够按照固定方向运输,管理员需要为每条轨道指定一个运输方向,使其变成一条单向轨道。
出于安全要求,货物最多只能经过一条轨道。也就是说,完成方向设置后,运输网络中不能存在一条长度大于等于 的有向路径。
这里,一条长度为 的有向路径表示货物能够沿着轨道方向连续经过 条轨道。
请判断是否能够为所有轨道设置方向,使运输网络满足上述要求。如果可以,请输出任意一种合法的方向设置方案。
输入格式
- 第 行: 个整数 ,分别表示中转站数量和轨道数量。
- 接下来 行:每行 个整数 ,表示第 条双向轨道连接中转站 和中转站 。
输入保证轨道网络连通,不存在连接同一个中转站的轨道,也不存在两条连接相同中转站对的轨道。
输出格式
如果无法为所有轨道设置满足要求的方向,输出一行:
NO
否则,第一行输出:
YES
第二行输出一个长度为 的二进制字符串。
对于第 条输入的轨道 :
- 如果字符串中的第 个字符为
0,表示轨道方向为 指向 。 - 如果字符串中的第 个字符为
1,表示轨道方向为 指向 。
如果存在多种合法方案,输出任意一种即可。
样例
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。
数据范围
- 输入的轨道网络保证连通
- 输入中不存在自环和重边