Loading

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}\)

一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下

思路

题意

给定排列 hh, 一次操作定义为把当前的排列任意分成 kk 段之后按段翻转

求次数最小的方法, 使得 hh 有序

等价于把原串变成目标串, 但是有用吗?
需要结合一些性质
你发现答案只要求 \(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}\)

你知道的, 今天的策略意味着我必须拿尽可能多的部分分, 所以
一定不要贪, 数据检验, 关键步骤记录
冷静, 耐心, 放下

思路

显然是需要形式化题意的

题意

给定一张 nnmm 边的无向连通图
uuvv 的路径花费为路径上权值和减去最大权值与最小权值的差

求从 11 点到其余所有地点的最小权值

这种图上 \(\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\)

posted @ 2025-03-21 16:42  Yorg  阅读(19)  评论(0)    收藏  举报