CodeForces 1103C. Johnny Solving

题目简述:给定简单(无自环、无重边)连通无向图$G = (V, E), 1 leq n = |V| leq 2.5 imes 10^5, 1 leq m = |E| leq 5 imes 10^5$,保证任意节点的度数$geq 3$。给定参数$1 leq k leq n$,要求完成以下任务之一:

1. 找到一条包含至少$frac n k$个节点的简单路径。

2. 找到$k$个简单环,使得

    2.1. 每个环包含少于$frac n k$个节点,且包含的节点个数不得被$3$整除;

    2.2. 每个环都存在一个代表节点,这个节点不在其他环中出现。

解:code

考虑图$G$的DFS树$T$。

1. 若$T$中存在深度$geq frac n k$的节点(根节点深度为$1$),则找到了一条包含至少$frac n k$个节点的简单路径,完成任务1。

2. 不然(即,树$T$的深度$< frac n k$),$T$存在至少$k$个叶节点(设$T$有$x$个叶节点,则

$$n = |V| leq sum_{v ext{ is a leaf of } T} ext{depth}(v) < x frac n k, $$

从而$x > k$)。我们可以通过其中$k$个叶节点构造$k$个满足条件的简单环。

设$v in V$为$T$的某个叶节点,注意到$v$在$G$中的度数$geq 3$,故存在两个不同的节点$x, y in V$,他们都不是$v$的父节点且$(v, x), (v, y) in E$。则$x$和$y$均是$v$在$T$中的祖先(DFS树的性质)。不妨设$ ext{depth}(x) > ext{depth}(y)$。

考虑以下三个环:

a) $v, ext{father}(v), dots, x$,长度为$l_a = ext{depth}(v)- ext{depth}(x)+1$;

b) $v, ext{father}(v), dots, y$,长度为$l_b = ext{depth}(v)- ext{depth}(y)+1$;

c) $v, x, ext{father}(x), dots, y$,长度为$l_c = ext{depth}(x)- ext{depth}(y)+2$。

这三个环的长度均$ < frac n k$,且不可均为3的倍数(设环a和环b长度均为3的倍数,则环c的长度$ l_c = l_b-l_a+2 equiv 2 pmod 3 $不为3的倍数)。完成任务2。

原文地址:https://www.cnblogs.com/TinyWong/p/10348575.html