赛题总结
此次 nlp 编程大赛虽然比赛过程比较坎坷,但总体来说还是圆满结束了。
我以自身视角来复盘分析本次比赛,老实说我自身的算法能力也还处在学习提升阶段。作为一场校级编程赛事,我和同学们都希望比赛题目能够尽可能覆盖多元知识点,而非一味依靠简单暴力思路就能解题。
我相信如果大家赛后思考过这些题,都会学到很多。比如 C 题,如果参赛选手的思维能力不是那么强、对串的学习没那么深入,用暴力解法是一定能拿分的,依据我们人工单独的评分标准,可以给到 10 分。它的难点也许就在如何处理不定行数的输入,这是算法选手必须掌握、也最容易忽略的技能。再说 D 题,糖果传递是一道十分单纯的贪心题,它更多的是需要比赛选手在草稿纸上推导解题答案,自己能找到局部最优解→全局最优解,这题思维量确实很大,但也很有意思,做完后可以将思路套用到绝大部分环形贪心题型中,但作为 1.5 小时的比赛,我也在反思解题时间是否太过紧张。而 E、F 题,它们的本质实际上就是两道数据结构考点题,此次比赛的考点肯定要有 dp,而这个 dp 不能单纯是 dp 模板题,我记得今年蓝桥杯省赛的第一题填空题考的就是 dp 模板,所以作为倒数第二题,肯定要有所增加难度。这道题最大的难点就是如何维护多种情况的 dp——Kadane 算法,这也是我新接触到的,如果从前接触过,那么这题的思维量还不如糖果传递。我更希望普通选手研究过这道题后,能建立一个新的思维,当然如果是大神,很快就能解出来。最后一道题,实际上也存在些许争议,因为这道题的答案只有两个,2 和 3,输出其中一个就能拿一半的分,这也是我的疏忽。我自身的水平实际上也达不到随手就能写出各种算法模板的程度,但作为压轴题,我出这道题时,更多的想法是这道题必须是树或者图,但相比树来说,图会相对简单。如果参赛选手是经常参加算法比赛的大神,那这道题就属于简单题,大多数选手做不出来也不必灰心。
综上所述,这套题涵盖了许多算法基础,它不是考察选手在传统课堂上的例题掌握情况,而是在算法知识面上的相对广度。我在此当中也学到了很多。当我看到有选手在赛后也在研究这些题的时候,作为出题人,我还是很开心的。当然以上的总结是出自一个 "开天眼" 视角,如果选手有自己视角的补充,也欢迎大家一起讨论。

查看27道真题和解析