不深刻的做题 / 比赛方法

· · 算法·理论

注意:全文很可能都在胡扯,自行分辨。

怎么想到一些相对 ad-hoc 的东西?

ad-hoc 重点在于随机区分,我们只能使用同样随机的方法应对。

找出一种可行的算法

算法本质上是人们为了解决问题问题构造的黑盒。

比如朴素线段树以 O(\log n) 的时间支持区间半群查,单点修改。

有时候,你没有见过类似的黑盒,怎么办?自己造一个。

有时候只需要天马行空的造一个算法就好了。

例子:构造题的手玩就是一种自己生造算法的例子。(喵了个喵)

思维路径长什么样?

一般是一棵树,包含问题的多步转化,但是最终思考成功的是叶子节点。

有时候也会出现不同的转化方式同时作用于题目的推进的情况。

答案在黑盒内还是黑盒外?

有时候我们对题目转化取得了进展,然而这并没有用。

这时候我们思考,答案在黑盒内还是黑盒外?我们的转化真的有用吗,我们对题目的认知真的全面吗?

但是,这个黑盒你探索完了吗?你记得这个黑盒吗?

可以在草稿纸上梳理自己所拥有的性质和已经尝试的转化。

弱化这个问题

最常用的做题技巧之一。例子:OI/IOI 赛制的拼包,特殊性质对正解的提示等等。

弱化问题的好处有哪些?

首先你可以知道问题最好的情形以排除思考方向,DAG 可达性目前只能 O(\dfrac{n^2}{\omega}),这排除了非 bitset 做法的可能性。(追忆)

然后,弱化问题可以启发原问题的思考。观察特殊性质并思考是很套路的玩法。(双序列拓展)

或者,题目的某个限制很烦人,这时候不妨丢掉它。可能会有转机。有时候甚至丢掉这个限制没有任何影响!

最后,能拿部分分,难道不赚吗?

强化这个问题

有时候,题目的限制很松,抓不到重点。这时候可以用强化或者类似强化的方式抓重点,这部分较少用,先跳过。

多个题一起想

比赛中,如果有题目没开而你对某个题的思考陷入僵局,应该先开题。因为所有题目一起想是不劣的,思考进度不会丢失。

你拼的每一个包本质上都是一个能得分的题。如果没有掌握全局观,很容易坠机。(WC 2025)

同时,无论这个题你是否感到擅长,都应该尽力而认真。当然还是应该遵循下一条原则。

以利好自己的方式思考

这并不是畏难,而是因为你更擅长的东西思考的更快。

对于你不擅长的东西,一定要冷静而不带偏见的思考,但是也要利好自己。

弱化问题本质上是一种利好自己的思考方式。

这个模型你真的没见过吗?

有时候你其实不是没有见过一个模型,但是他换了样子。

例子:dp 转移可以看成图。

模型的本质

接上一条。这个模型的本质是什么?你真的知道吗?

怎么找本质,要问自己:这个模型有什么客观性质?这和你学过的什么很像?

某些性质决定了这个模型的解决方式,无论他看起来多么神秘,多么不可解,了解性质之后就离我们了解的题目或模型靠近了。

这个模型你真的见过吗?

有些性质稍微变一下,整个题的方法就是完全不同的。

这个题究竟为什么可以这么做:它用到了什么性质,我现在还有这个性质吗?那么这个题的本质也被改变了。

那这个模型对我们的解题是不是真的有帮助?

有效思考

我们定义有效思考为:

  1. 获得了模型的其中一个性质。这直接让我们离问题的本质 / 解法更近了。
  2. 获得了模型的一个转化 / 相关 / 弱化模型。这可能让我们离问题的本质 / 解法更近了。

思考更快,本质上是有效思考更快更多。

什么是无效思考:

  1. 发呆。
  2. 原地打转。

如果无效思考过多,需要尝试思考两个问题:

  1. 我真的要硬做这个解题方向吗?会不会不是这个方向?
  2. 我真的要做这个题吗?别的题是不是还没做?别的题是不是还没认真想?

掌握自己的比赛

你是聪明的将军,而不是被迫的士兵。如果找不到转机,不要寄希望于随机区分的题目是否能做对。

什么东西最有把握,你就越要拿下,越要精明,越要专注。

谨慎而冷静,三思而后行

我的决定不一定是对的,但是是我目前能想到最好的。

我的构建的算法可能是错的,但我可以仔细的检查。(也可能是思路有小问题:NOIP2025 T2)

我目前在做的题 / 包不一定对,但是是我目前最有把握做对的。

我的决定是我能想到里收益最好的。这就足够了。

前进第一

找到一个转化之后,先不要管在自己直觉中这个转化有没有用,先尝试了再说。

有想法在想清楚的情况下可以先实现。

可不可以打表?

利用经验

这个题如果我真的想不到,那很可能就是由某个经典模型转化的。

估计这个做法能不能过,有没有更好的写法?有没有更好的想法?

正确的放弃题目 / 思维方向

可能这个题超出了我的思考能力范围?

可能这个题用了我不会的算法?

可能这就是个搞怪题?

放弃不会丢弃,而是停止。而是止损。