CF1658C 题解

· · 题解

思路

首先,由于 p 在这里轮换了 n 次,所以一定有且只有一次 n 开头的情况,这个时候 c_i=1。如果没有 c_i=1 或者有好几个 c_i=1,那么显然无解。

然后,我们从这个 1 的位置开始找。我们考虑怎么排除不合法的情况。

那么,其他的情况是否都有解呢?

答案是肯定的。因为无论如何,每次按照前面的 c 构造,要么放大的要么放小的,总之能够造出来一个解。

代码实现

我们只需要完成两个操作:

实现比较简单,就不放代码了。