Open是武大长期流传下来的人文精神,也是我们集训队一直的宝贵财富。因此我们在Legend的基础上取名OpenLegend,作为本次比赛的队名。
比赛前一天:
本来是想周六中午BG大家的,结果发现了浙江理工在下沙之后就知道中午来不及BG了,所以改到晚上。晚上的湘菜馆还是挺不错的,虽然我感觉不够辣。。吃饭的时候看大家的状态都不错,都挺Happy的。
周六下午热身赛的时候,Dumbear问了我一句:“我们的比赛策略是什么?”
听到这个问题之后,我顿时感觉大脑空白了几秒。
思索了良久这个问题的答案,回想起了以前在ChaeYeon队伍的时候制定的种种策略,比如赛前要制定表格,说好每个人的读题顺序,想好卡题了怎么办,碰到什么类型的题目让谁做,谁负责主要读题,谁负责帮队友debug等等等等。
在回想完这种种之后,不知道为什么感觉这些策略都不值得提出来,于是跟Dumbear说:“到时候看情况,该怎么样就怎么样吧。”
不过虽然没有继续讨论“策略”这个问题,我仍然在那里静静的思考了良久,或许真正的策略便跟武侠里面一样“重剑无锋,无招胜有招”。
前言:
这场区域赛是我的最后一场区域赛了。也是我的最后一场区域赛总结了。
赛前我们做了很多准备, 强调了很多东西。
还特地做了杭州的模拟赛, 做了六题, 在杭州也可以拿金牌了, 为我们增加了不少信心
。
最后虽然没有突破, 但一个金牌也算是比较圆满了。
A. 一个进程调度的问题。
这道题是我们卡的时间最久的一道题。当时真是头脑不清醒。
后来我们是用nlog(n)的方法过的, 建了两个堆。
但是后来听hust他们讲才知道有更好的sort+线性扫描的算法。
结果:yes
B. 一个数据结构题。
动态树是明显可以解决的, 但是不会写。
想了半天“轻重权剖分”无果, 于是放弃这道题了。
结果:no
C. dp。
其实这道题对我们的打击挺大的, 我们感觉算法并不好写, 也并不怎么好想, 不知道为什么, 其它队伍都把这道题当成顺秒题给pass了。
我们一开始根本就不敢去写我们的dp做法, 以为有更好的贪心等方法, 在想了很久无果的情况下只能用dp去试之。
结果:yes
D. 应该是建一棵树然后统计。
但是建树是困难的, 统计也是困难的。
结果:no
E. 求矩形并。
因为范围很小, 所以只要写了一般都可以过。
结果:yes
G. 贪心。
但是贪心有好多步, 细节上有不少trick。还好最后我们想清楚了。
结果:yes
H. 生成树的个数。
数学一直是我们比较弱的地方。
所以这题直接被我们无视了。
结果:no
I. 最短路
这道题描述太长了, 大家都不知道其实是一道水题。
我们也是最后一小时才发现的。代码写了一会就ac了。
结果:yes
J. 简单题
没什么算法, 写了就过了。
结果:yes
比赛过程:
赛前吸取了合肥赛区的经验。
这次我们三个把“稳”字放在了第一位。
1. 我去写e, 写了一个sb错误, 多了一次罚时才ac的。
这一次罚时真是不应该, 明明想到了这个trick, 但是还是wa了一次。
比赛一开始就这样, 太打击我信心了。
2. yy去写c, 我在中间把简单题j给ac了。
yy也写了sb错误, 变量打错了, 因而一直不过样例。
过样例之后, 发现有一个地方处理不是特别清楚, 我们再三犹豫, 用了一个不是特别优美的方法过了这道题。
3. 我们三个人全力想a。
我先用水的方法去交了两次a, 都得到了tle。没有敢再去水, 赛后跟dolphin交流才知道, 这道题真的是可以水过去的, 我们再改一下cmp函数就可以水过去了。
我们水不过去, 三个人都很无语, 正确的方法想了很久了也没有想出来。
还好在这个关键的时刻, yy想出来了一个用两个堆的方法。
我去写了就过了。
4. 搞g
一开始feli跟我说了一个优化后的匹配方法, 但是我还是觉得复杂度太高了, 没有敢去尝试。
后来想了一个sort+贪心的方法。
但是细节上却有很多地方不是特别清楚。
三个人商量了很久之后, 去写了就过了。
5. 还剩一个小时, 全力搞i。
在封掉board之后, 我们一开始是定的去写d, 但是d题我们打算写二维线段树, 有点小麻烦, 把握很小。
还好这个时候我们转头去做i了。
i题是我们配合很好的一个题目。
在最后一个小时的情况, 我们从看题到想算法, 到一次ac,只用了不到四十分钟。
分工:
yy帮忙再次确定题意, 我来写好bfs部分和样例(此题样例很长)。
我盯着feli写好最重要的输入部分。
代码写完之后, 基本没什么编译错误, 过了样例之后, 交上去就过了。
6. 到此做出六题, 就over了, 我们也没有能力再出下一道题, 于是开始吃饭。。。
我们数了一下气球, 金牌应该是没有问题的, 但是成绩可能不比哈尔滨赛区好。
结果:
队伍第六, 学校第五。和哈尔滨一样。。。
总结:
这次比赛前期很不顺利, 还好后来一点一点追了回来。
感觉上来说, 我们三个对这次比赛的过程基本没有什么遗憾了。
会做的题都过了, 不会的题也没有浪费太多时间去想。
可以说是基本上发挥了正常水平。
在区域赛上能够发挥正常水平, 可以说是已经很不容易了。
最后结果是第四?
比赛之前囧事:
1. feli不知道什么时候找不到他的书包了. 里面有衣服等…
2. 赛前给我们的衣服, 过了一个小时又要回去了. 那老师态度有点差…我们都是学生,
也没有跟他们多说.
3. 练习赛, 等不到车, 也等不到的士, 所以迟到了.
4. 赛前我洗完澡后, 发现打不开门了, 冻了我半个小时, 直接导致后来头疼…
5. 还有一些秘密囧事…就不好意思说了
练习赛:
我靠, 哪有这么难的练习赛!
AB是网络赛的原题中最难的几个之二。
c也挺难的。
我敢说, 如果不是网络赛原题的话, 这么难的题, 过题的队伍绝对不超过10个!
还好AB都会做。
过了B
A交上去WA…
WA…
本着是练习赛的原则, 就没鸟这个WA…
去跟nju jyy他们聊了聊。
然后回来发现Case后面忘了打冒号, 囧.
正式比赛:
step1:
feli先让我去做F(最难的一道题, feli看错题了, feli也看错题, 太难得了。。。).
然后我死活过不了样例, 把这个代码查了两遍后。
郁闷的去debug…
更郁闷的发现了题意理解错了。。。
跟feli商量后, 发现这个一个区间图上的最大团, gta上的东西。。。
忘带gta了。
这时候非常非常郁闷。
不过也没管它, 继续寻找下一道题。
step2:
发现a是简单题, yy去做。
中间犯了一个sb错误, 改正后就过了。
虽然有点小卡, 但是问题不大。
step3:
全场大家都只过一题, 比较安静。
我看到c是一个简单题。让feli帮我确定一下题意。
去问了一下有没有多重边, 结果人家不理我们。
为了稳间, 我还是去写了一个有多重边的求桥程序。
交上去就过了。
ms大家都去用网络流做这道题了?
step4:
yy去写dp+线段树(e题)
结果yy状态不大好, 写sb了。
写的时间有点长。
按理来说yy应该把这题半小时内秒掉才是正常的。
yy的代码还是很稳定的。
step5:
我们feli在那里搞剩下的题。
我写d(一开始算法对, 我怕麻烦, 简化错了, 在四个小时的时候, 才和feli讨论出正
确的优美的算法, 交上去过了)
feli写那两道数学题(算法都有问题, 所以都没有过, 不过后来跟别的队伍交流发现算
法差了一点点)
step6:
封榜了。。。
然后我去水h, 全是tle。
在最后十五分钟, 想出了正确的n^3的做法。
用梯形剖分的类似做法, 但是我没有敢去写。
就这样比赛结束了。。。
后悔的地方:
1. 没有全力去搞h而是把时间放在了数学题上。。。
我和feli擅长的计算几何好不容易出了一道, 结果没做它。。。
2. 代码写太多了,每个题都写了。。。d还写了两个。ft
3. 比赛中同时开了太多题, e d b g h差不多是同时在写。(同时写五题?怎么会犯这么
sb的错误)
总结:
1. 数学还是我们的弱项
2. 需要想太多的题目, 总是做不好。
3. 比赛的时候太急了。(大忌)
成都加油。希望能够有所突破。
我们队的大体情况:
比赛之前状态调整的不错。
我们三个都感觉比较有信心。
但是比赛过程之中却非常不顺。不知道之前攒的人品跑哪去了。
一开始:我们看到slash过了一道题。然后我们发现是陈题。(I题)
所以yy去秒之,结果发现pc2有问题, 交题失败?
练习赛的时候出现了这种情况, 不知道为什么他们那边没有把这个问题解决掉。
等了几分钟左右, 他们让我们重启pc2, 这时候我们情绪就有点不太好了。
后面还有更让人晕的事情。
连续提交两次, 才把一道简单题的代码交上去。
但是。。。。。。
我们的程序是二个小时之后才给的yes,但是在这期间, 别的队伍都刷刷的过题的非常多
。
不知道为什么我们的提交就是不给judge。
这两个小时,在这么郁闷的情况下。
更郁闷的事情是:没有board。
我们并不知道别的队伍都过掉a了,再加上自己没有注意寻找简单题。
我们做出了一个比较错误的决定:我去写h题。
在board更新之后,我们开始奋起直追。
一直追到剩下不到两个小时,我们五题,IronGods是六题,What’s up是四题。
我们三个松了一口气,停下来分析了一下局势。
以当时的局势来看,我们决定保证以d为主b和h为辅。
比较郁闷的是,三个人合力搞d,搞到最后才搞出来。也因为这道题做的太慢,我们在天大
和浙大后面。
从题目上来看:
本次比赛题目不难,代码量比较小。
没有我们喜欢的几何题。
有些题目比较陈,都做过了。
h题不错,可惜想错了。
从我们三个人来看:
yy状态极佳,四个速度极快的1A。中期,主要就是靠yy的代码发挥了。
feli强大的题意理解能力,在这次比赛中起到了至关重要的作用。
最后一个题是feli写的c++版本,我帮他改成java的。(因为高精度)
我们一直因为输出的问题wa,最后二十分钟feli想出了trick。改后ac的。
我就比较郁闷了:
前期,我就在跟志愿者争吵:为什么不给我们judge?为什么别人都ac了?
中期我写了c,一开始写了一个费用流的,结果tle。
改成km还wa了一次。
后来帮feli写了一个java的分数类,别的就什么都没干了。
结果:
我们六题,队伍排名第六,不知道能不能出现,成绩跟去年的南京几乎一样,我们前面的
学校少了一个国防科大,多了一个浙大。
gcc南京比赛总结
今天我们做的并不是很顺利,前面出题太慢,我状态不是很好,导致罚时也比较多。
拿到题目,我们三个人都有点晕。觉得题目有点难。三个人的身体状况也并不是很好,都
有点小感冒,cz还在发烧, 我鼻子不通气。不过我们的心态还都不错。
我们在把题目几乎看完之后,没有找到简单题。但是我一直觉得F是一个可以水的题目。在
跟feli商量了几句之后,我去提交了F,在还没有返回结果的时候我就发现我交错了文件。
改之,得到了期望中的tle,然后我还知道一种要用到后缀数组的做法,不过太麻烦,所以
我在求速度的情况下,去提交了两个for循环,看看结果是tle还是wa,结果居然还是tle。
这时候我跟cz和feli他们俩个说,这是我已知的最好做法了,不可能有更快的,肯定有别
的问题。先放一下这道题。
这个时候cz跟我说j题是一个比较麻烦的搜索,让我想一下可不可以做,我按cz的思路想了
一下,觉得处理起来比较麻烦,所以我们两个决定先放一下,这时候feli看了一下board,
然后发现已经有两个队伍ac了j题。我们三个于是意识到了我们想复杂了,还好feli马上想
到是一个简单的dp,他去写这题。交上去之后,回来一个wa,feli想了一下,发现是题意
理解错误,改之,得到了第一个ac。
这个时候已经一个多小时了,而且很明显我们的成绩不是特别好。不过我们倒也没觉得什
么,因为平时比赛我们队就总会出现这种情况。罚时比较多,出题比较慢。
cz在看了f题之后,跟我说了f题的trie树做法,这时我才想到我想的做法,全想反了,所
以才会得出来此题非常难的结论。由于手头也没有trie树的模版,我也就只能硬着头皮现
写了,所以这个题出的比较慢,中间还差点写头晕,总感觉写的有问题。还好算是ac了。
此时我们二题,要出第三道题的话,就只有出g题了。g题是一个经典题,题目就是求最长
重复子串,但是题目里面并没有说明子串是不是可以重叠的。苦于,我没有带后缀数组的
论文,所以里面最关键的一部分求h函数,我忘记是怎么求的了,这才是最郁闷的,比赛之
前我还在那里念叨忘记带论文。我在那里郁闷的推了半天,推出来的时候交上去ac了。虽
然此时我们三题,但是时间比较靠后。
此时我们三个人都没有题做,然后我们大体商量了一下,我们决定放弃其它题,去做a和d
。
我和cz去做a,feli和cz去做d。
结果证明这并不是一个不太明智的选择,因为最后a和d也就才三四支队过。而i题有十几支
队伍ac,我们却连想都没有想。
i题数据太弱,如果数据强的话,是一个我们比赛之前就讨论过了非常经典的难题(最小外
接圆),队内没人会做。我们完全没有往数据太弱那方面想。事实上可以通过凸包+枚举a
c。郁闷的是天大他们就是这样ac了,而且因为罚时比较少,所以在我们前面。
feli在比赛还剩50分钟的时候,rp暴发把d题ac了。我们就这样四题了,剩下50分钟,他们
把时间全放在了我写的a上面,不过我状态比较差,一直wa到最后。此时board已经封掉了
,在还剩20分钟的时候feli无聊去看了一下气球,说只有6支队伍过了四题。
其实在很早的时候,cz就已经把h题的贪心想好了,但是他觉得没有完全证明,所以没有敢
去写这个题。我觉得这也是比赛失败的地方之一,华科他们就是贪心过掉了,我觉得cz也
肯定可以ac,因为这类的题,他赛前做过非常多的研究。
整体上来说,我们最后成绩虽然不差,但是比赛的遗憾还是非常多的,我相信我们在下一
站的吉林可以做的更好。