#P16436. pm16500奇环探测器
pm16500奇环探测器
题目背景
一座城市的交通监察系统把各个路口抽象成无向图中的顶点,把双向道路抽象成边。监察员尤其关注那些位于“奇数长度环线”上的路口,因为这些环线往往会给路线规划和二分调度带来特殊影响。
为了让检查结果可以被复核,系统不仅要判断每个路口是否位于某个奇环上,还要为每个满足条件的路口给出一条包含它的奇环,作为证明证书。
题目描述
给定一个含有 个顶点的无向简单图,顶点编号为 。
一个简单奇环是一个顶点序列
满足:
- ;
- 为奇数;
- 序列中的所有顶点互不相同;
- 对所有 ,顶点 与 之间有边;
- 顶点 与 之间有边。
若顶点 位于至少一个简单奇环上,则称顶点 是幸福的。你需要对每个顶点输出:
- 若它不幸福,输出
0; - 若它幸福,输出任意一条包含该顶点的简单奇环。
答案可能不唯一。
输入格式
第一行包含一个整数 ,表示顶点数量。
接下来 行,每行一个长度为 的字符串 ,描述图的邻接矩阵:
- 当 为
Y时,顶点 与顶点 之间有边; - 当 为
N时,顶点 与顶点 之间没有边。
输出格式
输出 行,第 行描述顶点 的证书。
- 若顶点 不在任何简单奇环上,输出一个整数
0; - 否则,先输出一个奇数 ,再输出 个互不相同的顶点编号 ,表示一个包含顶点 的简单奇环。
即幸福顶点对应行的格式为:
L V_0 V_1 ... V_{L-1}
输出的环可以从任意顶点开始,也可以选择任意方向。
本题为多解构造题,评测时需要使用特殊评测程序(SPJ)。整理包按要求不附带 SPJ。
样例 1
输入
4
NYNN
YNYN
NYNY
NNYN
输出
0
0
0
0
说明
该图是一条路径 ,不存在任何环,因此所有顶点都不幸福。
样例 2
输入
4
NYNN
YNYY
NYNY
NYYN
输出
0
3 3 2 1
3 3 2 1
3 3 2 1
说明
顶点 构成一个长度为 的奇环;顶点 不位于任何奇环上。
样例 3
输入
4
NYYY
YNYN
YYNY
YNYN
输出
3 2 1 0
3 2 1 0
3 2 1 0
3 0 3 2
说明
每个顶点都位于某个奇环上,但它们不一定需要使用同一条奇环作为证书。
数据范围
对于所有测试数据:
邻接矩阵还满足:
- ;
- ;
- 每个字符均为
Y或N。