题目
给$N$个点$M$条边的连通图,每个点$i$上有权值$d[i]\in{-1,0,1}$。要你选出一些边保留,其余边删去,使得每个$d\neq-1$点的度数模$2$等于$d[i]$,权值为$-1$的点没有要求。
数据范围
$1\leq N \leq 3\times 10^5 \quad N-1\leq M\leq 3\times10^5$
做法
构造性证明如下结论:本题有解当且仅当能通过将权值为$-1$的点的权值变为$0$或者$1$,使得所有点的权值和为偶数。
充分性:证逆否命题。若度数和只能是奇数,则显然无解。因为最后答案中的每个连通块的度数都是偶数,和必然是偶数。
必要性:构造性证明。随便生成一个生成树,任取一点为根。对每个节点,按照深度从下向上处理。设当前节点为$cur$,其父亲节点为$fa$。
- 若$cur$的权值为$0$,则$cur$不需要处理,丢弃$cur$,此时剩余点度数和仍为偶数。
- 若$cur$的权值为$1$,则选取边$(cur, fa)$,并将$fa$的权值取反,丢弃$cur$,此时剩余点的度数和仍为偶数。
这样处理完所有点,即可得到答案。
代码
|
|