【SCOI Round #1】题解

$3$ 道题是自己 $yy$ 的……不过 $T2$ 可以用原题做法……$T3$ 小撞原题 $bzoj4556$……


T1

这题就是让证明一个结论……

我们要加一些无向边,使构造出来的“近似树”最少需要 $k$ 种不同的数才能给所有点都标上号。

设在加无向边之前,最长有向链的长度是 $len$,则 $k\lt len$ 的时候答案一定是 $no$,因为你把最长链上所有的数标号就至少需要 $len$ 种不同的数了。

然后我们就会发现答案可能跟最长有向链有关。

推一推就会发现,在 $m≠0$ 的情况下,只有用一条无向边连接两条最长有向链的同层节点 或者用奇数条无向边连接两条最长有向链的最底层节点(即出度为 $0$ 的那个点)时,这两条链才至少需要 $len+1$ 种不同的数才能全部标号。

证明:

一条无向边两端的数必定有一个大小关系,所以每条无向边实质上可以贪心地转为一条有向边,贪心的原则是是这棵树需要用到的不同的数最少。

首先,如果用偶数条无向边连接两条最长有向链的节点,任意相邻的两条无向边都可以转为方向相反的有向边,这样不会增长有向链的长度。

如果用奇数条,在不让两条最长有向链变长的情况下,多出来的这条边会与相邻的某一条 变成同向有向边的无向边组成长度为 $2$ 的有向链。但我们现在考虑的是 $m≠0$ 的情况,原图中至少有长度为 $2$ 的有向链,所以不用考虑它会使最长链长度变长

猜你喜欢

转载自www.cnblogs.com/scx2015noip-as-php/p/10625402.html
今日推荐