2022.08.31 模拟赛小结

题面

PDF链接

原题题包(计蒜客) 去掉了 T4,其余有部分改动

(这个链接只是为了自己方便找,页面设置权限了,不要尝试访问)

更好的阅读体验戳此进入

(建议您从上方链接进入我的个人网站查看此 Blog,在 Luogu 中图片会被墙掉,部分 Markdown 也会失效)

赛时思路

T1

一个很简单的...思维题?

一个区间有四种操作对应着区间升序、降序、翻转、对应位置交换,求最后序列的最小值位置。

关于对应位置交换的含义:4 l r k:依次对每个 i=l,l+1 , ⋯,r ,执行 swap(a[i], a[i+k])。保证 r + k ≤ n ,≥ 1。

很显然地想到维护最小值的位置,如果当前最小值位置在修改区间内,前两个操作分别代表变为首位和末位,第三个操作意味着将其从位置 p 变为 l+rp 第四个操作需要一些简单的思考,显然考虑位置 p 在交换的两个区间内时,可以考虑如果 k>rl 则直接将 p 一次转移到对应位置,反之则可以考虑判断如果 pl+k 以内,一定会被多次等距向右交换直到超出范围,否则则一定会被向回交换有且仅有一次,如此即可线性完成整个题。

需要注意此题数据量极大,建议用读入优化而非 scanf,当然一般比赛不会卡 scanf(虽然我们这次模拟赛卡了,幸亏我习惯用读入优化)

因为题目较为简单所以赛时顺便打了个对拍,以防思路假掉。

Code:

暴力:

对拍:

T2

咕咕咕

T3

咕咕咕

正解

咕咕咕

UPD

update-2022_8_31 初稿