CF1063E Lasers and Mirrors题解

一道很好的手玩题,被薄纱了。

首先判掉 \(\forall i,p_i=i\) 的情况(显然是 \(n\)

然后考虑按照 \(p_i\) 连边,先构造每一个环的方案。发现可以简单放置两面镜子使得 \(i\) 射到 \(p_i\) ,而且只要从高到底构造,两个环之间和一个环里所有的点都一定不会互相产生影响。

但是每一个环的最后一个点很特殊,因为第 \(1\) 个点下面放置了让第 \(1\) 个点射到第 \(2\) 个点的镜子,最后一个点就不能这样射回去。对于环内所有其它的点也是一样的。

但是如果我们另外找一个点,就可以放 \(4\) 面镜子绕回去。

同时,因为从高到低放镜子,这个找的点就不能接收了,答案必然减小 \(1\)

显然,对于每一个环,我们希望另外找的一个点一样,于是我们选择 \(n\) 号点(这样比较方便,都是向左射)。

因此,其它情况的答案为 \(n-1\)

posted @ 2024-09-26 19:26  星河倒注  阅读(8)  评论(0编辑  收藏  举报