3.21 CW 模拟赛 赛时记录
看题
\(\rm{T1}\)
然而并没有什么思路啊
不过感觉应该能想一想
-
定义操作 (约束) 和开销 / 收益, 要求最值化开销 / 收益
- 模拟操作, 找性质
- 最优化问题的瓶颈, 考虑找最优解的性质来处理
- 枚举开销对应的值\((\)超过 \(x\) / 不大于 \(x\) / 长度为 \(x\)\()\) , 然后考虑对于这个值进行
- 贪心
- 判断合法性
- 往往拥有单调性
- 先找到一组简单的合法解, 然后在基础上进行调整, 使其花销更优
- 要求一个数列的多个部分 \((\)前缀, 子串 \(\cdots\)\()\) 的成本
- 找到所有情况统一的构造方案
- 构造: 先推性质, 不行打表
- 贪心
- 往往应该把选择权留到后面去
- 超过一半类
- 构造一组都满足 \(a\) 条件的, 然后剩下的构造一个满足 \(a\) , 一个满足 \(b\) 的, 这样一定超过一半
- 先找到一组简单的合法解, 然后把其他情况分讨或转化
- 贪心
- 构造: 先推性质, 不行打表
-
逆向思维
- 只要结果&起点确定, 完全可以考虑倒推
- 时间倒流
-
\(\textrm{ad-hoc}\)
- 题目给的范围 / 上限, 猜一下做法/性质
- 多类\((\)一般是两类\()\) 可能的最优解构造
- 往往直接分开讨论
\(\rm{T2}\)
图论吗? 无意思
你发现我没有多少图论 \(\rm{trick}\), 二轮复习再说
\(\rm{subtask}\) 有 \(40 \sim 56\)
\(\rm{T3}\)
- 图论
- 度数全等一般可以转化成连通块都为环
除此之外感觉并不好做啊
\(\rm{T4}\)
转眼间, 现在 \(2025\)
怎么还有购买啊, 无敌了
总的来说 \(\rm{subtask}\) 一点也不少, 我们可以考虑按序做差不多
\(\rm{T1}\)
一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下
思路
题意
给定排列 , 一次操作定义为把当前的排列任意分成 段之后按段翻转
求次数最小的方法, 使得 有序
等价于把原串变成目标串, 但是有用吗?
需要结合一些性质
你发现答案只要求 \(q = n\), 尝试这样去构造
一番尝试感觉到了应该就是构造题目, 确实有很多的性质
很快就可以构造出一种比较优秀的方法, 但是显然不是最好的, 因为差不多只能保证 \(q \leq 2n\), 但是这相当于强心剂, 在下面分析一下
把当前序列划分成两段
已经排好序 + 无序
每次从 无序 串中掏出最小值, 分成下面三段
已经排好序 + 无序串中最小值之前 + 无序串中最小值及之后
一次操作变成
无序串中最小值及之后 + 无序串中最小值之前 + 已经排好序
然后
(无序串中最小值及之后 + 无序串中最小值之前) + 已经排好序
再来一次操作变成
已经排好序 + 无序串中最小值及之后 + 无序串中最小值之前
就把已经排好序的段长度 \(+1\) 了, 特殊情况是之中有空串, 那么对操作会有具体的影响, 在实现上具体分析即可
这样子应该是 \(q \leq 2n\), 可以通过 \(68.8 \textrm{ pts}\), 已经差不多可以说是赢一半了
那么 \(w = n\) 怎么做
推了一会未遂了, 但是发现后面 \(\rm{subtask}\) 太多就先丢了, 实现一下 \(68.8 \textrm{ pts}\)
实现
强烈谴责下发 \(\rm{checker}\) 不能直接用, 我的技术不足以让我搞明白这咋用
但是不慌, 冷静
倘若只剩下
无序串中最小值之前 + 无序串中最小值及之后
那么直接交换这俩不就好了
倘若只剩下
已经排好序 + 无序串中最小值及之后
显然不可能
倘若只剩下
已经排好序 + 无序串中最小值之前
显然不可能
倘若只剩下
已经排好序
就完了, 剩下的单列都不可能
所以讨论完了
配置了一下 \(\rm{spj}\) 差不多拍一下就不管了
\(\text{ }\)
\(\rm{T2}\)
你知道的, 今天的策略意味着我必须拿尽可能多的部分分, 所以
一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下
思路
显然是需要形式化题意的
题意
给定一张 点 边的无向连通图
从 到 的路径花费为路径上权值和减去最大权值与最小权值的差
求从 点到其余所有地点的最小权值
这种图上 \(\min \max\) 让我一时间想起了一堆故人, 但是不知道能不能用
考虑一下 \(n, m \leq 100\) 的情况, 发现可以钦定最长最短的边的长度, 然后在剩下的图上面跑最短路
复杂度大概是 \(\mathcal{O} (m^3 \log m)\) 的, 并且可以说浪费的时间不少, 因此先接着想一下树
考虑树的情况, 同样利用上面的方法, 对于每一个点我们是可以处理出 \(L_i, R_i\) 使得当前点可达的
哎哎哎, 发现思路有锅, 因此可能需要重新想一种
考虑树的情况, 你发现有一些边是必定经过的
感觉不对啊, 怎么一点都不会
发现树上一个点至多经过两次
\(\text{ }\)
\(\rm{T3}\)
你知道的, 今天的策略意味着我必须拿尽可能多的部分分, 所以
一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下
思路
这个打个暴力可以润了
模拟, 每次下坠判断每个 \(\rm{SAND}\) 下方是否有物品, 没有就整体下移
还剩下 \(1\rm{h}\), 赶紧去冲一下 \(\rm{T4}\), 至少搞个 \(120\) 吧
\(\text{ }\)
\(\rm{T4}\)
你知道的, 今天的策略意味着我必须拿尽可能多的部分分, 所以
一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下
思路
题意比较复杂, 但是开场的时候已经看过了
对于每次来一对的情况, 预处理出每一对用某种板凳的不适值, 枚举取 \(\min\) 即可
对于只来一次的情况, 这个显然可以贪心, 我们先对兔子排序, 然后相邻两个兔子做一个板凳即可
对于 \(n, k\) 较小的情况, 简单枚举取 \(\min\) 即可
感觉这题有 \(20 \sim 30\)

浙公网安备 33010602011771号