Google杯复旦邀请赛

A.想复杂了,用中国剩余定理做的,解只有 (2^n) * (2^n的逆元) 与 (5^n) * (5^n的逆元)。
B.BST的模拟,’o’的横向位置就是元素排序后的位置。
C.吸取(合取)范式,元素有拓扑结构,按含 1 的个数分层。
D.KMP枚举开始位置,记录重复字串个数与长度,从最后往前跟新最大值。
E.概率,枚举直接胜的情况,打平之后的概率可用 P = 10P + 01P + 11 来计算,还要注意不同先发的情况。
F.模拟,还没看过。
G.排序
H.计算几何,还没搞过,以后再做。
I.强连通缩点,拓扑排序后用 N * M 的复杂度算出要删的边。
J.离散化+DP
UVA不能保存代码…没有代码…

经过一年的等待,又一次踏上了ACM的战场。比起去年的无知,感觉自己成长了很多,随着不断向有经验的队员学习,自己对于ACM的了解也越来越深入。就这样在自我感觉还不错的情况下去了省赛,但复旦的省赛着实又让我上了一课。
第一天的热身赛,由于题目比较简单的缘故做得十分顺利,我都没有碰键盘我们队就把三题过了(PS:队友都比我强)。这也让我对第二天的比赛充满信心。虽然第一天的晚上有些小插曲(跑错旅馆、睡地板),但应该对比赛影响不大。
对于第二天的比赛题目ch_g已经分析过了,我就从我的角度说一些我们队在赛场上的表现。
比赛一开始,uriel负责从前往后看,ch_g从中间看,我从最后往前看,我看完最后一题发觉是DP或贪心就跳过继续往前看题,倒数第二题发觉自己理解不能(这时uriel也抱怨第一题理解不能),本来想不用字典的我还是查了一下字典,发觉这题和传递闭包有关…但整个题意还是不理解。就在这时,uriel发现G题有些队过看了遍题目后,她很快就上去敲了。这是我把J和ch_g说了下,看看他有没有思路(感觉DP题太依赖ch_g了)。A了G后,ch_g上去敲思路还不成熟的J。uriel则让我再读一遍A,最后经过商量我们终于读懂了题意(这时过A的队还很少)。由于之前一直在做数论题,我开始就从数论的角度思考这题。很快我把问题转化为了求解 a ^ 2 = a (mod 10 ^ n)(期间还用电脑暴力了一下,看我的想法对不对),但是求解的过程中要用到高精度,于是我和uriel讨论这题,让她用JAVA来敲。uriel让我先把过程用C++的形式写出来,她再转成JAVA(表示虽然会点JAVA,但在这种场合不敢自己写)。在解A题的过程中ch_g一直在搞D题,由于模板有个地方打错了,结果调了很长时间,代码打印了好几遍,此时桌上满是资料,要找东西了变成了一件困难的事。最后总算在171的时候过了A。这是uriel和我讲剩下的题目,而ch_g仍在敲D。在剩下的题中,感觉B和E可做,我先听了E,表示对网球规则一点都不懂,光是题意就没听懂,于是放弃。然后听了B,发现o的位置与序列排序后的位置相对应后,便感觉可做。我和uriel讲了我的思路后决定uriel来敲(我始终有个印象,队友比我强,我能不敲就不敲)。由于剩下的时间不多,我打算辅助uriel敲B。这时ch_g终于A了D题。(赛后才知道,我们队过的题都被其他队用简单的方法板刷了)。经过各种调试,我们在240时出了SAMPLE,但提交后返回WA。此时我感觉这题即使是WA也应该会很快过掉,于是就没有打搅ch_g写J的伪代码,还YY着我们队还能过2题。事与愿违,B题WA到了比赛的最后。
赛后感到心情很低落,想了很多,如果自己对JAVA很熟悉…如果ch_g很快用KMP过了D题…如果B能发现那个小错误…如果稍微再想一下E题…如果把我换成lpld…如果比赛能再来一次…,看着dumbear,watashi…大牛脸上自信的笑容,感觉到了自己与他们的差距。lpld说大牛和一般人的差距就在与他们有一颗FINAL的心,正是因为这样他们才愿意花出超出常人10倍100倍的精力来切题、想题。对于在大学之前没有接触过编程的同学来说,进FINAL的条件只能是比别人刻苦。如ch_g所说的航电的胡浩和武汉的韩帅。听dumbear说他亲眼见证了韩帅如何疯狂做题,在短短一年时间里超过他的事迹。对于以上的种种,不经感到自己很惭愧。自己的切题数少的可怜,心里浮躁,想通过多看点书,走捷径。但事实证明这样只会使自己和别人的差距越拉越大。看个书,了解了一个概念,就像过眼云烟一样,不经过做题与思考,再怎么看书也只是浅尝。ACM需要积累与切题,无论少了那个都会事倍功半。接下去再说说下半年的打算。现在正值大三,是该决定保研,考研,出国,工作的关键时刻,可我依然有着强烈的想搞ACM的心,接下来的日子要对自己有一个更好的规划。有目的,有强度的训练是必不可少的。要赶紧查漏补缺,在暑假集训以前把自己调整到一个良好的状态。做自己不会的题,做自己敲得慢的题,做自己DEBUG很久的题



留下评论