AT_KeioPC2025_i Odd Even Partition

题目描述

给定一个有 $N$ 个顶点 $M$ 条边的简单无向图,顶点编号为 $1$ 到 $N$。第 $i$ 条边连接顶点 $u_i$ 和顶点 $v_i$。 同时给你一个由 `X`、`Y`、`?` 组成的长度为 $N$ 的字符串 $S$。 请判断是否存在一组顶点集合对 $(X, Y)$,满足以下条件,并在存在时给出其中一组解。 - 每个顶点 $i~(1 \leq i \leq N)$ 只属于 $X, Y$ 中的一个; - $X$ 所诱导的子图中,每个顶点的度数都是奇数; - $Y$ 所诱导的子图中,每个顶点的度数都是偶数; - 若 $S_i = $ `X`,则顶点 $i$ 必须属于 $X$;$S_i = $ `Y` 时顶点 $i$ 必须属于 $Y$。 这里,诱导子图指在图 $G$ 上,顶点集合为 $S$ 的所有顶点,边集合为「$G$ 中两端都属于 $S$ 的所有边」的那张图。

输入格式

输入按以下格式从标准输入读取。 > $N ~ M$ > $u_1 ~ v_1$ > $\vdots$ > $u_M ~ v_M$ > $S$

输出格式

如果不存在满足条件的 $(X, Y)$,请输出 `-1`。 如果存在满足条件的解,请输出一个长度为 $N$ 的字符串 $T$,满足: - 若顶点 $i$ 属于 $X$,则 $T_i$ 等于 `X`;属于 $Y$ 时 $T_i$ 等于 `Y`。 若有多个解,输出任意一个均可。

说明/提示

### 部分分数 本题设有部分分数。 - 若 $S$ 中的 `?` 个数不超过 $17$,并答对该组数据,可得 $1$ 分。 ### 样例解释 1 令 $X = \{1, 2\}, Y = \{3\}$。 集合 $X$ 的诱导子图只包含一条边 $(1, 2)$,所以 $1, 2$ 的度数为 $1$。 集合 $Y$ 的诱导子图中无边,因此 $3$ 的度数为 $0$。 因此满足所有条件。你也可以输出 `YXX`。 # 数据范围 - $1 \leq N \leq 500$ - $0 \leq M \leq N(N-1)/2$ - $1 \leq u_i, v_i \leq N$ - 所给图为简单图 - $N, M, u_i, v_i$ 均为整数 - $S$ 为由 `X`、`Y`、`?` 组成的长度为 $N$ 的字符串 由 ChatGPT 5 翻译