今天,我参加了CSP认证比赛,之前一周其实都有在刷题,之所以想要参加这个认证比赛,有两个方面的原因,一个是辅导员在年级群了说这个起码要超过250分,才有资格竞争一个什么奖项;而另一个原因则是我目前正在准备实习,算法也是复习的重点,既能够锻炼算法能力,又能够竞争奖项,可以说是互相促进。
今天五道题,我只会做前面三道题,总共拿了270分,扣掉的30分是第三道题的一个细节,当时没有能够查出来,后来放弃了。
首先谈谈题目本身吧,第一题是给出离指定坐标最近的三个坐标,这道题比较简单,我使用小根堆的思想,用优先队列,简单判断一下即可,100分get。
第二题讲的是判断是否有连续k个坐标出现在指定区域内,这个其实就是一个动态规划的题目,定义状态dp[i]表示以i结尾的最长连续长度,之后可以进行空间优化,也不是什么难题。100get
第三题讲的是用程序模拟逻辑组合器件,题目告诉我们使用的逻辑器件以及连线情况,要求输出指定逻辑器件的输出值。这道题其实就是一个类似广度优先的题目,从输入值开始,可以得到第一级的输出,第一级的输出和输入,又可以得到下一级的输出,以此类推,直到最后全部逻辑器件的输出都得到。
我失分的地方在于这道题涉及到了环的判断,也就是如果一个逻辑器件的输出直接或者间接连接到了它的输入,那么就应该返回错误。我判断的方法是这样的,我首先假定全部逻辑器件的输出值都是-1,通过不断更新,将全部的-1变成1或者0,最终如果出现了负数,那么说明存在环路。但是其实这个是不严谨的,这导致了失分,而我在当时也没有过多检查,加上一开始的目标就是250分,270分看上去已经绰绰有余,我就没有继续研究,而此时的时间只剩下半个多钟,继续做新的题目也没时间了,所以我就提前交卷离场。
后来出来之后,和一个学长交流,才直到这个考试如果能够拿到三百分,对于各种的加分都非常有帮助,我瞬间感到非常后悔,如果当时能够继续深入,找到错误的地方,拿到三百分,那么该多好啊。
那个时候,我也只能够苦笑道:只能说取得阶段性成功吧,有机会继续刷题。但是在我心中,我再一次觉得自己的努力白费了,仅仅是由于自己懒惰、怕麻烦,没有将这件事情做到尽善尽美。
如今,考试已经过去,270分的成绩也不算太差,自己算法的水平其实也的确有所提高,但是,忽略的30分或许将会成为一大遗憾,这次经历能够给我一个很大的提醒,不要怕麻烦!不要懒惰!精益求精!
不过话说回来,如果只着眼于失去的三十分,未免太过于患得患失,还有更大的问题,或许在于时间的分配以及后两道题目的毫无头绪,因此,继续提高自己的算法水平,也是非常重要的。
2020-09-13:谈谈今天的CSP认证比赛吧
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...