102866: [AtCoder]ABC286 G - Unique Walk
Description
Score : $600$ points
Problem Statement
You are given a simple connected undirected graph $G$ with $N$ vertices and $M$ edges.
The vertices of $G$ are numbered vertex $1$, vertex $2$, $\ldots$, and vertex $N$, and its edges are numbered edge $1$, edge $2$, $\ldots$, and edge $M$.
Edge $i$ connects vertex $U_i$ and vertex $V_i$.
You are also given a subset of the edges: $S=\{x_1,x_2,\ldots,x_K\}$.
Determine if there is a walk on $G$ that contains edge $x$ exactly once for all $x \in S$.
The walk may contain an edge not in $S$ any number of times (possibly zero).
What is a walk?
A walk on an undirected graph $G$ is a sequence consisting of $k$ vertices ($k$ is a positive integer) and $(k-1)$ edges occurring alternately, $v_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k$, such that edge $e_i$ connects vertex $v_i$ and vertex $v_{i+1}$. The sequence may contain the same edge or vertex multiple times. A walk is said to contain an edge $x$ exactly once if and only if there is exactly one $1\leq i\leq k-1$ such that $e_i=x$.Constraints
- $2 \leq N \leq 2\times 10^5$
- $N-1 \leq M \leq \min(\frac{N(N-1)}{2},2\times 10^5)$
- $1 \leq U_i<V_i\leq N$
- If $i\neq j$, then $(U_i,V_i)\neq (U_j,V_j)$ .
- $G$ is connected.
- $1 \leq K \leq M$
- $1 \leq x_1<x_2<\cdots<x_K \leq M$
- All values in the input are integers.
Input
The input is given from Standard Input in the following format:
$N$ $M$ $U_1$ $V_1$ $U_2$ $V_2$ $\vdots$ $U_M$ $V_M$ $K$ $x_1$ $x_2$ $\ldots$ $x_K$
Output
Print Yes
if there is a walk satisfying the condition in the Problem Statement; print No
otherwise.
Sample Input 1
6 6 1 3 2 3 3 4 4 5 4 6 5 6 4 1 2 4 5
Sample Output 1
Yes
The walk $(v_1,e_1,v_3,e_3,v_4,e_4,v_5,e_6,v_6,e_5,v_4,e_3,v_3,e_2,v_2)$ satisfies the condition, where $v_i$ denotes vertex $i$ and $e_i$ denotes edge $i$.
In other words, the walk travels the vertices on $G$ in this order: $1\to 3\to 4\to 5\to 6\to 4\to 3\to 2$.
This walk satisfies the condition because it contains edges $1$, $2$, $4$, and $5$ exactly once each.
Sample Input 2
6 5 1 2 1 3 1 4 1 5 1 6 3 1 2 3
Sample Output 2
No
There is no walk that contains edges $1$, $2$, and $3$ exactly once each, so No
should be printed.
Input
题意翻译
有一张 $n$ 个点 $m$ 条边的无向连通图,已知 $k$ 条边为关键边,需要经过每条关键边恰好一次,非关键边无限制,判断能否满足条件。Output
问题描述
你被给定一个简单连接的无向图$G$,它有$N$个顶点和$M$条边。
$G$的顶点编号为顶点$1$,顶点$2$,$\ldots$,顶点$N$,它的边编号为边$1$,边$2$,$\ldots$,边$M$。
边$i$连接顶点$U_i$和顶点$V_i$。
你还会得到边的一个子集:$S=\{x_1,x_2,\ldots,x_K\}$。
确定是否存在一条在$G$上的路径,该路径恰好包含子集$S$中的每一条边一次。
路径可以包含不在$S$中的边任意多次(可能为零次)。
什么是路径?
在无向图$G$上,路径是一个由$k$个顶点($k$是一个正整数)和$(k-1)$条边交替组成的序列,$v_1,e_1,v_2,\ldots,v_{k-1},e_{k-1},v_k$,满足 边$e_i$连接顶点$v_i$和顶点$v_{i+1}$。序列可以包含多次相同的边或顶点。 一条路径被认为恰好包含一条边$x$一次,当且仅当存在恰好一个$1\leq i\leq k-1$,使得$e_i=x$。约束
- $2 \leq N \leq 2\times 10^5$
- $N-1 \leq M \leq \min(\frac{N(N-1)}{2},2\times 10^5)$
- $1 \leq U_i<V_i\leq N$
- 如果$i\neq j$,那么$(U_i,V_i)\neq (U_j,V_j)$ .
- $G$是连通的。
- $1 \leq K \leq M$
- $1 \leq x_1<x_2<\cdots<x_K \leq M$
- 输入中的所有值都是整数。
输入
输入以标准输入的以下格式给出:
$N$ $M$ $U_1$ $V_1$ $U_2$ $V_2$ $\vdots$ $U_M$ $V_M$ $K$ $x_1$ $x_2$ $\ldots$ $x_K$
输出
如果存在满足条件的路径,则打印Yes
;否则打印No
。
样例输入 1
6 6 1 3 2 3 3 4 4 5 4 6 5 6 4 1 2 4 5
样例输出 1
Yes
路径$(v_1,e_1,v_3,e_3,v_4,e_4,v_5,e_6,v_6,e_5,v_4,e_3,v_3,e_2,v_2)$满足条件,其中$v_i$表示顶点$i$,$e_i$表示边$i$。
换句话说,路径按照以下顺序遍历$G$上的顶点:$1\to 3\to 4\to 5\to 6\to 4\to 3\to 2$。
路径满足条件,因为它恰好包含边$1$,$2$,$4$和$5$各一次。
样例输入 2
6 5 1 2 1 3 1 4 1 5 1 6 3 1 2 3
样例输出 2
No
不存在一条路径恰好包含边$1$,$2$和$3$各一次,所以应该打印No
。