博客 Just a blog site

ACM 与编码能力

前几天的 Codeforces Round #540 (Div. 3) 的 C 题(1118C)似乎引起了一点争议,MikeMirzayanov 甚至还为此发了一篇 blog。大致是,有人觉得这道题难度不难,但实现起来很麻烦而且繁琐,不是一个合格的 “problem”,Mike 在 blog 里怼说只有糟糕(原文是 sloppy)的实现才会导致一堆的边界检查和重复代码,好的实现不会出现这些问题,而拥有这样的能力对于一个开发者来说是很重要的。

我完全同意 Mike 的观点,编码能力不仅对实际的开发者来说很重要,也对 ACMer 们来说很重要,ACM 不仅考验解题的能力当然也编码能力,反过来编码能力也会影响自己的解题思路,因为如果你并不知道如何去实现你在思考时就不会有一个很清晰的思路,或者会怀疑自己的思路是否正确,或者想出一个虽然理论上正确但是实现及其繁琐的方法,或者想出了正解却不知道该如何实现而无法下手等等(我相信这些问题初学者都是会遇到的)。因为简单的思路而复杂的实现就批评一个问题不是一个合格的问题是没有道理的。