你说的对,谁问我了
御用垃圾场,决定周更!!!决定仍然保持一定的质量,至少要让人能读懂。
不要在意文中所有的人称代词。
(一)眼高手低
发现自己有些大的问题。如果想要去冲国赛,进入明年的省队,现在这个样子是远远不够的。所幸的是现在时间还早,去弥补的话,应该还来的及。
第一就是老生常谈的代码与调试能力。像今年的省选,如果要去写 D1T3 的一些部分分,或者是 D2T3 的一些部分分,都需要比较多的时间。而我 D1T2 最后几乎是压着线调出来的,虽然这有比赛策略的影响,但是还是太需要码力了。
可能受到个人成长经历的影响,我一直都是一个“码力差”的标签。其实倒也不算很差了,毕竟真差的话我早就退役了。问题就是,这个码力完全不够。之前的成长经历里完全没有受过这样码力的训练。
码力到底是什么呢?我想这个问题是值得深思的。比如一个拧魔方的题,如果是一步步特判,那么需要“耐心”。如果这个题有一些独特的方法可以更简洁的模拟,那么需要“技巧”。我认为这完全是两种不同的东西。
实际上,最后能不能快速的写完调完一个题还不挂分,这实在是一场综合能力的考验。这不仅需要长久的练习,更需要赛时的耐心和勇气,还有一些运气。
最近我在写一些之前没时间写,或者是“懒得写”的题。其实这些题需要的码力也不高,但是实在也是花了我一些时间。
我现在认为,做一个实在的“综合难题”,比如省选 D1T3,大概是“一波三折”的:
- 当你初见这题时,你会为这题的思路焦头烂额。
- 当你大概理解这题的思路后,你会觉得豁然开朗。
- 当你开始理清这题的实现细节时,你会觉得非常麻烦。
- 当你终于理清了所有的实现细节时,你会认为代码不过如此。
- 当你开始写这题时,可能会遇到一些困难,但是这部分较为平淡。
- 当你调不出来代码时,就会非常着急。此时你就会开始写对拍,重新检查思路,等等。
- 当你终于认为自己通过了这题,那就战胜了自己。
额,我想想之前比赛是咋打炸的。
- NOIP 2024,T3 胡了个不对的东西,然后大胆开写,写了 4k 只能过 \(\color{red}28\)。
- 省选 2025,Day 2 写了一场的 T1,导致后两题一分没拿。
- NOIP 2025,T2 胡了正解,然后过不去,一直以为是自己写挂了,然后调 T3 的 \(48\) 也调了很久。以为自己 T2 可以拿 \(52\),结果是 \(\color{red}28\)。最后发现确实是正解,但是式子考虑一个问题考虑错了。
好像差不多是这样。但是我坚信现在的我和过去的我是完全不同的,我可以解决这些低级错误。
问题在于面临的挑战是越来越大的。如果 NOI 出了一个有点难写难调的题,我调的比别人久,那不就损耗了竞争力吗?
接下来对码力进行一点拆解。
- 足够的耐心和专注。一定要理清理对所有的细节,然后沉下性子去专注的写和调。
- 一些调试技巧。比如对拍一定要尽早写,适时的重构代码,分步调试,等等。
- 足够的熟练。
这些都是可以训练的。训练的方法就是——不要眼高手低,耐心改题,比赛时多拼分数,多打代码。
我只要记住一点:不想去做的,就是不会的,就是需要去做的。
(二)不懂装懂
这个东西我不是很懂,稍微扯两句吧。
要谈论的,就是懂不懂一个题的问题。
嗯,如果你去做题,比赛完你不会,那么肯定要去看题解或者听讲评对吧。那这个时候怎么才能算懂这篇题解或者懂这个讲评。
在我很菜的时候,去听的时候总是似懂非懂的那样,然后讲课的学长也比较熟悉我。当然别人大概是知道我其实没懂,因为我水平就那样,我只能是大概浅尝了一下思路,实际上是左耳进右耳出,也沉不下心来真的理解这个题。
当然我现在已经比较厉害了,我可能懂了更多的题,也能和别人讲出一点实在的思路来。如果要说起之前不懂装懂的巅峰之作,可能就是“决策单调性学习笔记”。实际上我现在还不会决策单调性,哈哈了。
接下来说说我对一个题懂不懂的理解吧。
第一就是,思路一定要可复述,不能是只知道一个大体的方向而不细究,一定是仔细的,严谨的。
对于一个贪心,没有实践或是证明之前都是感觉。你对这个题的理解要足够深刻,以至于你自负这份代码错误所带来的后果。
对于一个构造,你可能只能找到一些大概的做法,比如“星图”中的四元环消除等等。然而你并不能为这个四元环消除负责。相比如此,更重要的是严谨的探究,而不是死磕自己的感觉。
如果你确实要用四元环消除的做法,那么你就是要处理操作次数限制这些麻烦的东西。如果你使用了归纳构造,那么这件事情就变简单了。这不是一种上天对别的做法的偏心,而是个人对自己想法的责任。
如果你确实理清了这个做法的细节,并且对整个复杂的算法为你的最终分数带来的影响真正的负责,那么这本身就没有问题。当然尝试应该是大胆的,可选手就是要为这些思考负责,这是现实的。
第二就是,对于不知道代码怎么写的,不清楚讨论的边界的,也是没懂。不知道一个思路的实现框架,那么就是不够理解这个思路所表达的意思,自然也不可以获得分数。
实现就是重要的。这不只是代码能力方面的事情,更是对自己思路负责的实际表现。你不再需要用长篇的论述来表现自己的负责,而是直接给出可以通过的代码。
不负责,是潇洒的,却是有害的。这是完全对自己水平的架空,妄想着直接向更高水平突飞猛进,最后只会摔得惨烈。
第三,做适当的验证。自然的拼部分分就是这点的体现,像是“清仓甩卖”的 \(92\) 分和 \(100\) 分的差别不大,而且 \(92\) 分是 \(100\) 分的基础,那么就应该写 \(O(n^3)\) 的做法。然后再做进一步的完善。
仔细想想就会发现其中的道理。更简单的部分分,自然有着更少的细节,自然是获得更多分数的基本保障。
这三点是懂一道题的一些体现。至于怎样在赛时和赛后懂一道题,就需要更进一步的探究了。
当然上面这些段落也是不懂装懂的体现,不过既然这是说给我自己听的,那么也就无所谓了。
(三)再谈责任
对自己的比赛要负责啊。
首先,应该确保快速写出来的分写出来了。
然后,不要太高估自己的代码能力,然后胡乱写,然后调半天。
另外,不要太高估自己的思维能力,胡乱想,死磕。
什么是真正的负责?一方面要对自己的比赛成绩负责,另一方面要对自己的赛时能力负责,够不到的东西就别去硬闯,这样也不用心累。
负责任,意味着你不会因为比赛打炸而特别心情不好,因为在赛时已经尽到了足够的责任。
负责任,意味着不会糊弄思维和代码,不会在考场上梦到什么写什么。
懂这个题吗,不懂就给这个题弄懂,不要糊弄。不懂就不要装懂。
仔细想过这个题吗(尤其是 T3),没想过就可以试着想想,不要糊弄,不要撒泼打滚。
真想不出来吗,那就扔了,反正还有别的题,还有 xxx 小时。
(四)水平
我不得不承认我所在的学校还能说是一个强校。虽然省份比学校强很多,但是我的学校有开明的教练,也有一定的资金支持。
我时常想,这些能力或许不是我能享受的。
过去的几届学长看起来都很厉害,就算我拼命的追逐,可能也跟不上。况且我还时常开摆,比如现在。
我可能提了很多次我初中的水平很差,可能有人要骂我 P,但是这确实是我目前比较自卑的点,省选后有一些缓解。
这里不提。但是我离我的目标,看起来是那么遥远。
我从来没被人叫过队爷,当然我也还没进过队,但是本来也没有人相信一个无名小卒能进队。我的目标是把自己的实力证明。
还是跟紧高二学长的步伐吧。这样肯定没错。
浙公网安备 33010602011771号