【瞎搞胡搞】骗分导论
骗分导论
一、直接骗分法
方法
对于某些题目,有可以直接输出的即可得分的点,可以通过这个,直接骗分。
局限性
由于是小部分一道题会有这种点,所以题目较少,且点数完全由出题人控制,运气成分较高。
不只是点数,平时还会遇到 Subtask 和多组数据的限制。
注意事项
认真看清楚题目,是否有 Subtask 和多组数据的限制,以及其是否能够骗分。
二、部分分骗分法
方法
直接骗分法是不稳定的,我们需要一个稳定的骗分方法,即部分分骗分法。
在无法想到正解的情况下,请尽可能地使用部分分骗分法,可以为你争取到更多的分数。
看数据范围,有几个点是满足一些限制的。通过观察限制,想出一些在此范围之内可以通过的算法,即在部分分内骗分。
动态规划类题目是部分分骗分法使用最多的题目,因为都可以使用搜索进行骗分。正常情况下,在搜索不出现错误时,应该会拿到 \(30\%\) 的部分分数。
除此之外,我们可以建立不同的 namespace 对于不同的 Subtask 使用不同的算法进行骗分。
同时我们还可以结合直接骗分法对剩下的点进行直接骗分。
局限性
对于大部分的题目在想不到正解的情况下皆可使用该方法。
特例还是有的,比如说一些计算几何,无法使用此方法。
注意事项
请看清楚限制以免出现用错 namespace 的情况。
三、玄学骗分法
方法
此方法不一定。典型的有随机数、贪心、剪枝优化和特判。
随机数基本上没有分数这个不用想。
贪心可以是动态规划的错解,对于动态规划类型的题目,应该需要留给贪心一点分数。
剪枝优化是一个玄学但又不玄学的东西,可以使程序在搜索过程中少执行大部分的操作,最优情况下甚至可以到达 \(O(n)\)(极少),线段树算是一个,在搜索 \(\log{n}\) 的树时,时间复杂度就为 \(O(\log{n})\),注意线段树的最坏时间复杂度也是 \(O(\log{n})\),所以造就了 \(O(n)\) 搜索,这启发我们需要注意最坏时间复杂度,最坏时间复杂度会超时,这就是一个玄学算法,只能凭着数据走。
特判是用在比如说一些局部情况可以化简时使用。化简减少时间复杂度。或者特判数据,直接给出已经算好了的答案。
局限性
用在比如说搜索,动态规划等题目中。
注意事项
由于和直接骗分法一样,是不稳定的骗分方法,于是我们应该小心使用。
看清楚题目限制,算好时间复杂度,再进行骗分。
四、结合骗分法
方法
这个是整个骗分方法中得分最高的,甚至可以达到满分超越正解,超越 std。
即结合前面所说的骗分方法。
架构肯定是部分分骗分法,因为其最稳定。对于较小的数据,可以直接使用部分分骗分法或直接骗分法,这样可以保证你在最好情况下,那大约 \(30\%\) 的分数不会丢,剩下的分数,交给玄学骗分法。
有一些评测机跑得很快,比如说省选 \(10^{10}\) 一秒过。所以结合上述方法,可以为你得到最高的分。
局限性
同部分分骗分法。
注意事项
同之前的。
不要打错部分分方法,不然部分分骗分就变成了玄学骗分。

浙公网安备 33010602011771号