2016 CCPC 杭州站 总结

来源:互联网 发布:java最新官网下载地址 编辑:程序博客网 时间:2024/04/29 13:31

再次来到杭电,其实是有点难过的,虽然我一直没说,走在杭电的校园里的时候还能想起来自己上次来的时候的种种幼稚。但是这场比赛打下来,感觉自己也想开许多了,虽然比赛还是失败了。

恩,讲比赛吧。

热身赛的时候就出了一道题,第二题队友去做了,我就没管,表示d题连题意都搞不清楚,当然,搞清楚了我也不会做,c题是计算几何的模板题,然而我没做过几何的题,然后板子也没带,平时偷的懒比赛就看出来了。(表示对面的复旦小哥好厉害,全程说学逗唱轻松过题)


正式赛:

赛前商讨了尽量让我敲题,毕竟拿铜可能拼手速。开赛前队友告诉我有思路就敲吧。打开题目之后, a题留给我看,很快就看懂了,大概有个想法,然后hyq跟我讲了c题题意,我又考虑了下,感觉a真的很水,于是赶紧敲出来,敲的时候一边考虑了下坑点,敲完之后直接交,ac!当时全场还没几个人出题来着,一看榜,第九,成就感蛮强的,感觉是个好势头,然后对面复旦小哥看着我们插上了气球(好刺激~)。然后可能就是这种感觉迷惑了我们,之后各种不顺。第二题(f)是对一个式子各项枚举,求出最大值的题,一开始我顺其自然的把/号之前的式子想成一个整体,实现的时候还特意加了括号,然后一敲示例,发现不对,然后才注意到题意并不是当成一个整体,去了括号,交,wa。期间想了一些爆longlong的情况,修改了交,继续wa。回过头来一想,之前由于假设除之前都是整体,所以当然除的数越小越好,所有只给除的数分配了一位,现在不是看成一个整体,所以这样肯定不对,然后改代码,换成对五项都枚举一遍,也就是四重for循环,交,tle!一想也对,时间复杂度到o(n^4)了,然后想着优化,研究那个式子的时候,仔细一看,a+b-c*d/e;马丹-后面的数肯定越小越好啊,c和d明显只能分配一位啊,都是之前当成把没一项之前的结果当整体的锅,重新写了下,只需要枚举a和b的分配就ok,提交,终于ac!这时候已经是开场两小时多了,我第一发ac是在15min,两个小时没出题!做出第二题之后排名也已经掉到90多。期间c题已经有思路,hyq试了一遍,交上去wa,我提出了double的情况,hyq改了下代码,ac,连过两题。这两题感觉都是很可惜,太晚出了,第二题就是我的锅,没有想清楚。然后看b题,b题是个图论的题,看完题的时候我觉得应该是求连通块,对每个连通块求值加和,小豪也觉得我的思路挺对的,但是hyq说这是个网络流的题,并指出每个点之间是单向的,然后由于我对单向连通没有把握,也没接触过网络流,就放弃了这道题,交给队友了。然后接下来做的比较多的k题,没什么思路,又看了几道其它题目,期间有道感觉是数位dp的样子,但是没有给上届,那应该不是了,感觉自己太弱了。然后队友讨论出了b题,不是网络流,用最小生成树求,其实我心里感觉也很不靠谱,最小生成树太牵强了,但是由于之前已经放弃这道题,也没多想,就帮队友敲出了最小生成树模板,让他们做去了。大概封榜之前我看了下榜,我们还在90多名,还在铜牌区里,形势也基本确定了,如果我们过了b题,那么稳铜,如果没过,那就只能看运气,没有掉出铜牌区。当时我个人感觉如果没做出来b题的话是很悬了,虽然我第一题敲的非常快,但第二第三题实在是挖的坑太大了。小豪敲出b题最小生成树的实现代码,测样例,不过,打印出代码来找bug,然后这时候我已经放弃其它题了,跟小豪一起严重最小生成树算法的正确性,结果果然是不对的,然后hyq想出了基于最小生成树的一个改进的方法,让他上去敲,敲出来后,样例过了,交WA,然后最后我们三个人一起改bug,不断交,不断返回wa,最后真的绝望了,但是没办法,坑都是之前挖出来的。结束比赛后,问了下对面的复旦小哥,b题怎么做,他们的主代码手表示求出连通块中入度为0的点把这些值加和,然后不存在入度为0的连通块中,取出权值最小的点加和。晕!一开始的思路是对的,只不过我忘了一点,连通块中入度为0的点一定不会超过一个,所以在hyq说出单向的时候我才会不相信自己的想法,而且这根本就不是网络流啊,事后知道这场比赛真正的网络流题是一个银牌题啊QAQ,所以就是被带错了方向,心塞。

然后结果果不其然,我们掉出了铜牌区,而且离铜就差两名,只是两发罚时的差距,泪奔。。

回过头来想,这场没能拿奖,责任大部分在我这里,第二题第一发提交之前,测样例不过,发现是之前的一个假设错误的时候,应该立马冷静下来,重新思考这个题,而不是改一下过样例就交,结果造成了三发无谓的罚时,以及延迟了这道题出的时间。然后在做出第三道题的时候,b题我的想法顺着想下去就只正解了, 但是我没有坚持,队友一说就放弃了,并且在队友也发现不是网络流的时候,我没有立马想起来重新按之前的思路去想,而是不管不顾,去看别的题去了。当然这跟队友的误导也有很大关系。所以经过了这次比赛,我得出了一些经验:

1.(致全队)一道题在自己真正的想出一个成熟的解法的时候,再跟队友讨论,更不要给这道题分类,避免误导。

2.当出现测试样例发现自己的一些想法不对的时候,哪怕是很小的假设出错了,也不要强行把样例改对就交了,冷静下来想想,这个错误会不会对整个题的解法造成影响。

3.铜牌真的会拼手速和罚时,前面几道签到题首先一定要稳,很重要,先保证签到题稳过,当然也要比较快,然后才是冲击后面的题目保证拿到奖牌。

4.提高自己对题目判断的能力,判断就是一种能力,要相信自己。


回来之后,打算继续刷一下数论,先把数论的基础给学好,然后poj尽量也跟着刷,要锻炼自己的刷题速度,自己刷题太慢了,cf、bc的比赛也不能落下,感觉对 思维的锻炼真的很大,我过a题过的这么快的原因应该就是这些比赛带来的锻炼。

然后青岛再战!

1 0
原创粉丝点击