最近模拟赛一堆思维题,然后就没一道想到的。noip 只剩两周了,求助各位大佬教教我怎么修理自己的脑子。
我的“想一题假一题”有三种:
一种是错误的否定掉自己的解法,比如今年 CSP-S T2,当时我已经想到用 ST 表维护第二个人的选择并且写了一个 60 分的暴力过了大样例,我想过用 ST 表也维护第一个人的选择,但是当时我受全正部分分的影响,傻憨憨的认为这个东西第一个人能选的是遍布 A 数组全域的。我认为第一个人的选择是和列上的数组有关的,没法 O(1) 得出第一个人一定要选哪个。具体的,我们没法维护 max(ai×min(bi)) 到一个 ST 表或者线段树里。看到身边的同学一个个切掉 T2,我赛后无助的咒骂着自己的 SB,但是没用了。想不出来就是想不出来。加上我在 T1 浪费的 2h,虽然 T1 过了,但是最后得分只有 160,在 LN 大概压线拿个一等,或者二等前几名。
第二种是忽略一些重要的细节,想当然的把样例中的特殊性质当成保证,或者捏造一个性质过掉了样例。比如今天的模拟赛,求一个字符串全排列连接成的字符串的字典序在所有字典序中的位置。很想当然的解法是把字符串全排列转化成数的全排列然后 Cantor 展开。但是这个东西很显然能被 b ba hack 掉,然后那个小样例甚至满足 ∣S∣ 相等,害得我对着我的 Cantor 展开瞪眼瞪了将近 2h,然后 SB 题 T2 没时间写了,最后拿了 30 分。
第三种就是完全思路跑偏,比如之前某场模拟赛,求一个几何图形有多少个对称轴,要求复杂度 O(n)。我对着我的计算几何调了 1h,然后题解出来的时候发现这是个回文判断题。更气人的是,当我以为这个题的思路没人想得出来时,发现这题赛时竟然有 10 个 AC!
确实我觉得我该换个脑子,但是我现在需要知道换脑子得换个什么样的。具体来说,就是如何更新自己的想题思路,才能防止思路跑偏,甚至当场把自己的正解否掉!
说的比较多,希望各位神仙提一点建议。