河南省第十一届ACM大学生程序设计竞赛总结

河南省第十一届ACM大学生程序设计竞赛总结

27号中午的时候到的信阳师范学院,下午3点半热身,热身赛是三道题,其中三道题中两道题是省赛的原题,一道是序号互换,一道是Metric Matrice,还有一道是贪心的水题。省赛的原题,我们去年省赛的时候刷过,所以分工的时候,我写那个贪心的水题,吴杨写Metric Matrice,吴荣写序号互换。而我第一次写的时候没有考虑到数据的范围,结果错了一次,纠正了之后就过了,吴杨的也很快过了。而到了吴荣的时候,他的那个题,他怎么也没调出来,我就说:我来写。我迅速写完代码后交上去,过了。这时看热身赛的榜单,哎,都到银牌去了。看来这次参赛的大多数手速还是可以的,还是有点压力(毕竟这半年都没参加省里比赛,省里的各个学校的水平也不是很清楚)。这时候,隔壁软件学院的已经走了,学弟也在群里问我们在哪里(以为我们已经走了呢)?按照惯例,测了测时间复杂度,发现时间复杂度上可以跑9个0,而且空间上限不用考虑(可以开几个G的内存呢),又测了次java的提交(毕竟正式赛万一有大数呢),发现没问题,ok!

而在此过程中热身赛的c++的编译器只有dev/cpp和一个写项目用的(没用过),我们平时刷题包括比赛(除圈钱杯)都是用的codeblocks,但是并没有这个,包括安装包。遂问志愿者可不可以给安装个codeblocks,然后志愿者记了下来,然后层层上报,过了一会儿,一个老师过来说这个需要询问计算机学会,如果他们允许的话,就可以,不行的话,就不好意思了,要我们提前做好不能用codeblocks的准备。热身出来的时候遇到了学长(教练),和学长说了这件事后,他们又上去和他们说这件事情,最终还是没有谈妥。

热身赛的晚上回宾馆后,早早睡了。晚上做了一个梦,梦到现场赛结束了,一个好消息,一个坏消息,好消息是我们队拿了金,坏消息是我们学校,只有我们一个队拿了金。不吉利-_-|||

现场赛的时候,8:55的时候就把题面给发了(只有一份),我原本还想着按照惯例,应该是不能动题面,要等到比赛开始,才能统一看题面的。结果志愿者也没通知这件事,而周围的人已经开始读题了,算了,不能吃亏。第一题是个日期计算的题,很水,就是写的时候要认真,不能出错,然后果断我写,在A了之后,吴杨和我说了H题,说是一道博弈题,我一看,这不就是尼姆博弈吗,咱们OJ上的取石子(六),我写了之后交上去WA,仔细核对了一下,是我把输出的那句话的Liu_B写成了Liu_b,-_-|||,改了之后就过了。随后B题被吴荣过了,吴杨和我说了F题,我大致想了下,对于副串,sort一下,对于主串,不断的在主串中选出长度为副串长度的子串,不断的sort,然后不断的和副串比较即可,很容易的过了之后,看榜我们还是挺靠前的,基本上是没出过前十,随后吴杨又和我说了D题,题面挺难理解的,而吴荣在看C题,他问我:9个0的时间复杂度敢写吗?如果要优化的话,我还得一阵子想。我说没事,不行的话,你先写。而他在写了之后,看了下榜,名次靠前的这个题都过了,而那些没过的都是排名特别靠后的,然后我就怂恿他交,交了之后,没想到真的过了。毕竟,省赛嘛。然后我在读I题,原本说的让吴荣和吴杨看D题的,但是他们嫌D题题麻烦,而且说E题他们挺感兴趣的,不看D题了,看E题,但是此时的榜上,E题还没人写,D题过的人倒是好几个呢。没办法,那还是我来看D题吧。D题的题目是真的迷,但是如果只看样例的话,倒是挺容易理解的,然后我就按照样例的理解,写了写,交了之后,Yes!此时我们已经是第一了,而这时候吴荣说他们已经想好怎么写E了,就是最小费用最大流,我继续看I题,而在吴杨敲最小费用最大流的模板的时候,我和吴荣讨论了下I题的题意。他说:这不就是2017年的final的题?用二分图匹配来写。(当时,我就觉得这把我们有夺冠的希望了。)那我就换题吧,我开始看G题,也是这场中AC率最低的题,很多人提交,但是没一个人AC。而在他们在写E题的时候,他们问我:long long 是用%lld吗?按照惯例一般是用%lld的,但是我们热身的时候忘记测试long long 的输入输出格式了,我说等下我在写下H题,我用%lld测试下,反正这题已经过了,即便是wa也不会有罚时的。而我测试完了的时候,的确是%lld。而他们在提交这题之后,等了一段时间,返回了Yes,此时还不到12点,我们已经连过7题了,依然榜首。心想这把小目标金牌已经实现了,就看能不能夺冠了(毕竟未能夺冠,一直是我校的遗憾)。而吴荣在写完I题的时候,发现样例怎么都对不了,我们又对了次题意,发现final的那题和这题还是有点差异的,GG,而这时已经有队写了8题了,他们把G题过了。而G题按照我们的理解就是要从A到达B,求最短路,但是为什么榜上一堆人都是wa呢?吴杨写了次spfa,结果tle了,然后发现他边的数组开小了,重新尝试,然后是wa?我们重新读题,还是那个题意,然后我们就想,是不是数据错了,就各种枚举可能错误的题意或者后台数据(如不是单向边,后台点的编号大于给定的n,m的值可能特别大),然而一直是wa。最终依然未能AC。最终G题ac的人数只有五个。而在讲题的时候说G题的题意是A到B,B再返回A(题面上说维和部队在A点,他们要寻找华人,华人在B点,求维和部队所经过的最少的检查点,并没有明确的说是要回来。)。好吧,so我们题意理解错了!

因为我们7题用的罚时是最少的,回来的时候,好多人说我们手速快,其实我觉得不是这样的,应该是我们写C题的时候,没有花费大量的时间想优化,而是直接抱着省赛数据水的想法去尝试提交,然后C题用的时间挺少的。而这个暴力尝试策略(仅适用于省赛),每次省赛前学长应该都会讲到的。

所以我们这次省赛不足的地方有:比如过了的题中,唯一的wa还是我造成的(输出字母的大小写写错了),而吴杨的spfa模板,默认的点和边所开的数组的大小居然是一样的。这些是不应该出现问题的。

你可能感兴趣的:(心得)