专栏文章

题解:P14180 「FAOI-R8」奶龙大战暴暴龙

P14180题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@minnx4e8
此快照首次捕获于
2025/12/02 05:29
3 个月前
此快照最后确认于
2025/12/02 05:29
3 个月前
查看原文
考虑依次将 bb 的每个位置与 aa 匹配。
具体的,假设对于 b1i1b_{1\sim i-1},我们都已经匹配好了。那么对于 bib_i,我们找到满足 jij\ge iaj=bia_j=b_i 的最小的 jj,然后把 aja_j 移到 bib_i 的位置。怎么移呢?如果 jnj\ne n,那么把 aj,aj+1a_j,a_{j+1} 一起移到 i1i-1 之后;否则把 ain1a_{i\sim n-1} 一起移到末尾。
当然还有一种特殊情况是 i=n1,j=ni=n-1,j=n,此时我们需要交换 an1,ana_{n-1},a_n 这两个位置。对于 n3n\le 3 显然无解,但是我们需要特判形如 x,y,xx,y,x 变为 x,x,yx,x,y;对于 n4n\ge 4,我们仅仅需要 44 个数便可以达成此操作。假设当前序列为 4,3,2,14,3,2,1,我们要将它变为 4,3,1,24,3,1,2,那么可以先将 4,34,3 移到 22 后面,使序列变为 2,4,3,12,4,3,1,再将 4,3,14,3,1 移到开头,使序列变为 4,3,1,24,3,1,2
这样直接做的平方的,足以在赛时通过本题。
可以发现每次把匹配完的点删除之后剩下的数的相对顺序不变,而每次操作会使一个区间的数的位置增加或减少一个值,拿 set 和树状数组维护即可。

评论

1 条评论,欢迎与作者交流。

正在加载评论...