[技巧] 思维题 长期更新

由于笔者很菜,这篇文章里的术语使用可能有误。

要求用最少步数构造出的某种结果,但不用输出最少步数

例题:2024.10.19 模拟赛 T4。

直接考虑最后的结果长什么样,可能不用真正得到变过去的整个方式。

相邻交换问题

注意:这里说的不是那个 邻项交换排序贪心。

给一个序列,可以交换任意相邻的两个数任意次,问最少多少次能够使这个序列满足某种条件。

例题:2024.10.19 模拟赛 T4。

思路

相邻交换对大小关系的影响不大,交换 aiai+1 只会影响数值 aiai+1 所在位置的前后关系,而不会影响其他 对 数值所在位置的前后关系。

考虑每一对数值的位置关系,对每一对数值找必须怎么走才最优。[合到一起(即贪心)后的正确性考虑能不能使得每个限制都被满足。](?)

增量法

自己规定顺序来增量

好处:

  1. 满足限制(如:大小关系)(我没想起这种做法能做的其他限制)。例:P2513 [HAOI2009] 逆序对数列、[《算法竞赛进阶指南》上 DP 部分的第一道例题](?)。
  2. 在之前的基础上做。例:2024.10.21 模拟赛 T1。

[字典序](?)、位运算结果 最值、第 k 小值

高位具有决定性。具体:如果高位已经分出了大小就不用比较低位了,此时已有大小关系。

于是:

  • 最值:从高位到低位贪心。
  • k 小值:确定此时那一位(高位),算低位随意选有多少种方案,根据其与 k 的关系判断此时那一位选什么,可能要让 k 减掉[与方案数有关的值](?),再接着选下一位(更低的一位)。

某个东西的个数很少(某个个数很小)

  • 很小:状压、搜索。
  • 特别小:状压、搜索、作为 DP 状态的维度个数(可能还有其他的维度,即可能小于维度个数)。第三点的例题:[《算法竞赛进阶指南》上 DP 部分的第一道例题](?)。
posted @   huangkxQwQ  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示