一些有助于考场上想题的思路
都是从最近做过的模拟赛/题目中总结出来的。
量变引起质变
好二的小标题啊(((
但是确实是这个道理,比如:
- 某个数反复开根、除以某数等等,暴力操作看似不可行,但次数多后就会变成 $1$ 和 $0$ 等特殊值,这类特殊值的性质是 $f(x) = x$($f$ 是操作)。
这个东西好像在一些小奥里叫做数字黑洞???
反正是个不可忽略的性质。
- 某些概率(期望)类题目里,如果某种转移操作次数达到一个阈值,那么上一次的答案对当前的答案的影响会变得非常小,几乎可以忽略不计。
比如对数列的交换操作,在次数充足的情况下,数列的分布趋近于被随机打乱。
就是今天做的【数据删除】牛客提高组模拟赛R6,我想了半天T4的矩阵加速转移,结果是转移次数小的时候暴力dp,转移次数大的时候直接不用管了???
从暴力的优化入手
很多题目都是这样做的,可以说这是每道题都必须考虑一遍的思路。
比如某道看着很想贪心的题目,但是你始终没法胡出正确的贪心思路。这时候不妨打一个暴力dp出来,很有可能打出来了过后就发现可以用数据结构之类的优化,一个 $\log$ 的复杂度影响不是很大。
再比如数论的题目,一次性把最终的式子推出来不太现实,可以先把暴力打出来,没准就发现某一个循环可以用某种恒等变换优化掉了呢。
结合数据范围特征
某些类型题目的数据范围具有很明显的特征,一般是从最优的时间复杂度来反映出来的。
比如 $\mathcal{O}(n \times 2^{n})$ 之类的状压,$\mathcal{O}(n^{2} \times m)$ 或 $\mathcal{O}(n^{4})$ 的网络流,还有 $\mathcal{O}(n^{2})$ 或 $ \mathcal{O}(n^{3})$的区间dp等等。
从特殊值入手
有些时候,一般性的数据不容易计算出答案,但是特殊数据的答案很明显,这个时候可以先处理特殊值的情况,再一点点推出一般情况。
例如数论题,质数的情况答案很好计算,然后可以通过唯一分解定理一点点推到一般情况。
(上面的例子可能有点太弱智了,但是我想不起来更好的例子了qwq)
还有一种就是看边界值,例如数的正负性可能会带来一些意想不到的结论。
从特殊性质入手
这是老生常谈的了,很多时候数据范围里的特殊性质对思考有很大帮助,可以先从特殊性质开始想起。
例如树的题目,可以从链的情况想,再推到一般树的情况,可能是用树链剖分,或是树上差分等等。
看看还有什么我没想到的再更吧qwq
本文来自博客园,作者:A_box_of_yogurt,转载请注明原文链接:https://www.cnblogs.com/A-box-of-yogurt/p/18016388