#aBC244G. [ABC244G] Construct Good Path

[ABC244G] Construct Good Path

AT_abc244_g [ABC244G] Construct Good Path

题目描述

给定一个包含 NN 个顶点和 MM 条边的简单(无自环且无重边)且连通的无向图。
对于 i=1,2,,Mi = 1, 2, \ldots, M,第 ii 条边连接顶点 uiu_i 和顶点 viv_i

满足以下两个条件的整数序列 (A1,A2,,Ak)(A_1, A_2, \ldots, A_k) 被称为长度为 kk路径

  • 对于所有 i=1,2,,ki = 1, 2, \ldots, k,都有 1AiN1 \leq A_i \leq N
  • 对于所有 i=1,2,,k1i = 1, 2, \ldots, k-1,顶点 AiA_i 和顶点 Ai+1A_{i+1} 之间有一条边直接相连。

空序列也被视为长度为 00 的路径。

给定一个仅由 0011 组成的长度为 NN 的字符串 S=s1s2sNS = s_1s_2\ldots s_N。当路径 A=(A1,A2,,Ak)A = (A_1, A_2, \ldots, A_k) 满足以下条件时,称路径 AA 是关于 SS好路径

  • 对于所有 i=1,2,,Ni = 1, 2, \ldots, N,满足:
    • 如果 si=0s_i = 0,则 AA 中包含 ii 的次数为偶数。
    • 如果 si=1s_i = 1,则 AA 中包含 ii 的次数为奇数。

在本题的约束下,保证至少存在一条长度不超过 4N4N 的关于 SS 的好路径。请输出一条长度不超过 4N4N 的关于 SS 的好路径。

输入格式

输入以如下格式从标准输入给出。

NN MM
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uMu_M vMv_M
SS

输出格式

请输出一条长度不超过 4N4N 的关于 SS 的好路径。具体格式如下:
第一行输出路径长度 KK,第二行输出路径的每个元素,空格分隔。

KK
A1A_1 A2A_2 \ldots AKA_K

输入输出样例 #1

输入 #1

6 6
6 3
2 5
4 2
1 3
6 5
3 2
110001

输出 #1

9
2 5 6 5 6 3 1 3 6

输入输出样例 #2

输入 #2

3 3
3 1
3 2
1 2
000

输出 #2

0

说明/提示

约束

  • 2N1052 \leq N \leq 10^5
  • $N-1 \leq M \leq \min\{2 \times 10^5, \frac{N(N-1)}{2}\}$
  • 1ui,viN1 \leq u_i, v_i \leq N
  • 给定的图是简单且连通的
  • N,M,ui,viN, M, u_i, v_i 均为整数
  • SS 是仅由 0011 组成的长度为 NN 的字符串

样例解释 1

路径 (2,5,6,5,6,3,1,3,6)(2, 5, 6, 5, 6, 3, 1, 3, 6) 的长度不超过 4N4N,并且:

  • 包含 11 的次数为奇数(11 次)
  • 包含 22 的次数为奇数(11 次)
  • 包含 33 的次数为偶数(22 次)
  • 包含 44 的次数为偶数(00 次)
  • 包含 55 的次数为偶数(22 次)
  • 包含 66 的次数为奇数(33 次)

因此,这是关于 S=110001S = 110001 的好路径。

样例解释 2

空路径 ()() 是关于 S=000000S = 000000 的好路径。也可以输出如 (1,2,3,1,2,3)(1, 2, 3, 1, 2, 3) 等路径,均为正确答案。

由 ChatGPT 4.1 翻译