『模拟赛 1』Day3

Round 1

1.1 得分

105。rk 倒 1。

1.2 BB

键盘上下左右和回车回格都坏的,只能用屏幕键盘。

也一定程度影响了心态,导致不想打暴力甚至。

但是题感觉真没那么难,破防了一会过后觉得自己不能继续颓了。

把基础打牢。套路积累已经够了,回来卷一些基础的东西吧。比如 CF 前面的题。

1.3 Solution

1.3.1 A

翻转操作容易想到中间的是不会变的,但是由于位置必须固定而每次无法由中间向外扩展,所以放弃。

还是尝试顺序构造,能不能按顺序从 1n 一次归位?

有一个 w=2n 的做法,假设当前对于位置 [1,p] 已经有序,下一个对 p+1 排序,那么我们考虑找到他的位置 id,让 [p+1,id] 成为一段,[1,p] 每段长度为 1[id+1,n] 单独为一段。

先 reverse 1 次,那么后缀就是 [p+1,1] 的形式,这时候 reverse 回去成功归位了。

优化是容易的,对于第 2 次 reverse,考虑尽量复原 p+2,仿照上面操作就可以了。

赛时想到过后就直接每次把 p+1,p+2,p+3... 每次能找的都全部找完了,当时由于心请不好就没有验证操作上限了,还是很危险的。

注意特判 an=1,此时第一次操作会使得 k=1

1.3.2 B

这个 maxmin+ 很容易让人联想到枚举边或者 wqs 二分之类的,但是数据范围直接劝退。赛时也一直想的这些。

属于是被诈骗了,这些可以全部放到最短路上记录,此题的精妙之处就在于加的是 min 减的是 max,任何的改变都会违背最短路的性质。(你要考虑一条路径 max 和 min 被错算的情况,一定要保证算错只会比答案更大才能这样做,和之前一道晚测有点像,只不过那道是不二分的 wqs)

具体地,记录当前 min 和 max 是否用了即可,建边考虑拆虚点,转移类似 dp。

1.3.3 C

模拟是非常不好做的。

有一个比较显然并且重要的转换:可以通过每个位置的下落总时间计算出它的最终位置。

然后就是连向最下面一行和下面的联通块的一个最短路,也可以用差分约束理解。

做完了兄弟。

1.3.4 D

全是单调性。

线段问题经典之消除包含,建立偏序关系。

【1】:一组的 2 只兔子会在一起的条件是他们排序后相邻。

【2】:选的桌子也有单调性。

将 【1】 和 【2】 结合,可以得到每个兔子的决策单调性。

分治决策单调性,每次计算 mid 选桌子 im 组兔子中的权值 sum。

考虑把 m2 个兔子全部拿出来,和桌子 i 的关系就是绝对值和,经典的拆式子套 lower_bound。

posted @   LCat90  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示