atcoder#ABC244G. [ABC244G] Construct Good Path

[ABC244G] Construct Good Path

题目描述

N N 個の頂点と M M 本の辺からなる単純(自己ループおよび多重辺を持たない)かつ連結な無向グラフが与えられます。
i = 1, 2, , M i\ =\ 1,\ 2,\ \ldots,\ M について、i i 番目の辺は頂点 ui u_i と頂点 vi v_i を結びます。

下記の 2 2 つの条件をともに満たす整数列 (A1, A2, , Ak) (A_1,\ A_2,\ \ldots,\ A_k) を長さ k k パスと呼びます。

  • すべての i = 1, 2, , k i\ =\ 1,\ 2,\ \dots,\ k について、1  Ai  N 1\ \leq\ A_i\ \leq\ N
  • すべての i = 1, 2, , k1 i\ =\ 1,\ 2,\ \ldots,\ k-1 について、頂点 Ai A_i と頂点 Ai+1 A_{i+1} は辺で直接結ばれている。

空列も長さ 0 0 のパスとみなします。

0 0 1 1 のみからなる長さ N N の文字列 S = s1s2 sN S\ =\ s_1s_2\ldots\ s_N が与えられます。 パス A = (A1, A2, , Ak) A\ =\ (A_1,\ A_2,\ \ldots,\ A_k) が下記を満たすとき、パス A A S S に関する良いパスと呼びます。

  • すべての i = 1, 2, , N i\ =\ 1,\ 2,\ \ldots,\ N について、次を満たす。
    • si = 0 s_i\ =\ 0 ならば、A A に含まれる i i の個数は偶数である。
    • si = 1 s_i\ =\ 1 ならば、A A に含まれる i i の個数は奇数である。

この問題の制約下において、S S に関する長さ 4N 4N 以下の良いパスが少なくとも 1 1 つ存在することが示せます。 S S に関する長さ 4N 4N 以下の良いパスを 1 1 つ出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M u1 u_1 v1 v_1 u2 u_2 v2 v_2 \vdots uM u_M vM v_M S S

输出格式

S S に関する長さ 4N 4N 以下の良いパスを下記の形式にしたがって出力せよ。 すなわち、1 1 行目にパスの長さ K K を出力し、2 2 行目にパスの各要素を空白区切りで出力せよ。

K K A1 A_1 A2 A_2 \ldots AK A_K

题目大意

给定一个 NN 个点 MM 条边的无向简单连通图,以及一个长为 NN 的 01 串 sis_i。求一条长度不超过 4N4N 的路径(可重复经过点或边,不必非空)(Ai)m(A_i)_m 使得 ii 号结点在路径序列中出现次数模 22 余数为 sis_i。多种答案可以输出任意一种合法方案。

保证 2N1052\le N\le 10^5N1Mmax{2×105,N(N1)2}N-1\le M\le\max\{2\times 10^5,\frac{N(N-1)}2\}

保证在上述条件下答案一定存在。

6 6
6 3
2 5
4 2
1 3
6 5
3 2
110001
9
2 5 6 5 6 3 1 3 6
3 3
3 1
3 2
1 2
000
0

提示

制約

  • 2  N  105 2\ \leq\ N\ \leq\ 10^5
  • $ N-1\ \leq\ M\ \leq\ \min\lbrace\ 2\ \times\ 10^5,\ \frac{N(N-1)}{2}\rbrace $
  • 1  ui, vi  N 1\ \leq\ u_i,\ v_i\ \leq\ N
  • 与えられるグラフは単純かつ連結
  • N, M, ui, vi N,\ M,\ u_i,\ v_i は整数
  • S S 0 0 1 1 のみからなる長さ N N の文字列

Sample Explanation 1

パス (2, 5, 6, 5, 6, 3, 1, 3, 6) (2,\ 5,\ 6,\ 5,\ 6,\ 3,\ 1,\ 3,\ 6) は、長さが 4N 4N 以下であり、 - 含まれる 1 1 の個数は奇数( 1 1 個) - 含まれる 2 2 の個数は奇数( 1 1 個) - 含まれる 3 3 の個数は偶数( 2 2 個) - 含まれる 4 4 の個数は偶数( 0 0 個) - 含まれる 5 5 の個数は偶数( 2 2 個) - 含まれる 6 6 の個数は奇数( 3 3 個) であるため、S = 110001 S\ =\ 110001 に関する良いパスです。

Sample Explanation 2

空のパス () () は、S = 000000 S\ =\ 000000 に関する良いパスです。 代わりにパス (1, 2, 3, 1, 2, 3) (1,\ 2,\ 3,\ 1,\ 2,\ 3) などを出力しても正解となります。