• ACM的那些事儿(二)

    寒流,甲流。

    天灾人祸。

    所以,我们选择安全地活着。

    宅在寝室,就是一个很好的生活方式。

    做一下模拟赛,让日子过得更滋润。

    于是乎,每周一“摸”的组内模拟赛,在11月15日,照常进行。

    中午1点集合。我问,咱们是做水题还是做水题?Upwinder说,做水题。话音未落,只见Zhuerduo以迅雷不及掩耳盗铃儿响叮当之势,刷刷地打开了HDOJ。我们哗啦啦地挖出了几年前的HDOJ比赛,题目中水题比例达到了60%。剩下的,是简单题或稍难但在我们能力范围内的题目。

    Upwinder说,天冷了,要做点水题,增强信心。我点头道,是的,多做水题,多A题目,有助于增强免疫力。Zhuerduo说,好,开始飙题吧。

    接着,我和Zhuerduo一起从前面开始往后读题,Upwinder从后面开始往前读题。由于题目比较简单,我们几乎是读出一题就马上知道解题思路。而两台电脑,一台常规用途,另一台仅供读题使用,此二者也没空闲过。

    中间的刀光剑影遇招拆招就略过不提,两个半小时过去,我们已经将6题中的5题AC了。值得一提的是,有一题求N^N结果的最左边数字的题目,我们WA了两次。我们知道,我们遇到了传说中的卡题。佛语有云,万物有因必有果,因果循环。我们经过抽丝剥茧,一步步检查问题排除原因后,终于把问题所在聚焦在将浮点数取整数部分的代码上。当时我们用int强制转换,在调试过程中发现,此强制转换对于较大的数值转换会出错。于是,我们改用floor(),调试通过。提交代码,AC。

    这时候,我们决定加题。于是乎,又多加了一场比赛的题目,共6题。这次的题目难度有点提高,但我们对于其中的3题,仍可较快想出思路并用代码实现。只是我遇到了一题,是关于Ackerman函数的。我的想法是,用递归会递归过深,就用递推吧。然后写了,提交,WA。再修改,再提交,再WA。我就这样陷进了代码中,卡在了这题里,满脑子都是非递推即递归的想法。后来,Zhuerduo看了一下这题,抛出一句话,这个在有限的可接受数据范围内,可以推出直接表达式吧。我方才恍然大悟,不要吊死在非递归即递推这可树上,可以换棵树再吊嘛。于是我根据Zhuerduo推出来的公式,修改了代码,提交,AC。其实很多时候我们钻进了牛角尖,卡在了题中时,的确需要队友的另外一种眼光和思维,来解决题目。

    这时候,我们看看时间,16:59。虽然我提出了最后一题的思路和解法,但是时间也差不多了,这场组内模拟赛暂且告一段落。最后一题留待过后慢慢写吧。

    飙了一下午的水题、简单题及有一点点困难的题目,群众纷纷表示,身体倍棒,吃嘛嘛香。可见,在天灾人祸的寒冷冬日,飙一场热乎乎的水题赛,的确有助于提高免疫力和抵御寒冷天气。

     

    PS:总结报告,就姑且用这一篇文章来代替吧。本次队内模拟赛中遇到的问题,解决的方法,以及积累的经验,均在文章有所总结,是以为此文。

    分类: 梦溪笔记 | 标签: ,