CF1063E Lasers and Mirrors題解

星河倒注發表於2024-09-26

一道很好的手玩題,被薄紗了。

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

然後考慮按照 \(p_i\) 連邊,先構造每一個環的方案。發現可以簡單放置兩面鏡子使得 \(i\) 射到 \(p_i\) ,而且只要從高到底構造,兩個環之間和一個環裡所有的點都一定不會互相產生影響。

但是每一個環的最後一個點很特殊,因為第 \(1\) 個點下面放置了讓第 \(1\) 個點射到第 \(2\) 個點的鏡子,最後一個點就不能這樣射回去。對於環內所有其它的點也是一樣的。

但是如果我們另外找一個點,就可以放 \(4\) 面鏡子繞回去。

同時,因為從高到低放鏡子,這個找的點就不能接收了,答案必然減小 \(1\)

顯然,對於每一個環,我們希望另外找的一個點一樣,於是我們選擇 \(n\) 號點(這樣比較方便,都是向左射)。

因此,其它情況的答案為 \(n-1\)