ARC120C

Sol

注意到第 \(i\) 个数在通过若干次交换到达第 \(j\) 个数的位置时值为 \(a_i+i-j\)

我们最终的目标是:找到一个排列 \(p\),满足 \(a_i+i-p_i=b_{p_i}\)

\(p_i\) 提到等式右侧,得到 \(a_i+i=b_{p_i}+p_i\),令 \(A_i = a_i+i,B_i=b_i+i\),那么 \(a_i=b_{p_i}\)

问题被转化为给定 \(A,B\),求最少邻项交换次数使得 \(A=B\),这个东西不难发现就是同一权值一一对应做逆序对即可。

Code

Link

posted @ 2025-03-17 18:42  incra  阅读(6)  评论(0)    收藏  举报