关闭

The end in Hefei - ACM/ICPC退役贴

2633人阅读 评论(0) 收藏 举报
The end in Hefei - 我的ACM/ICPC退役贴
2008-11-23 21:12

转自http://hi.baidu.com/zfy0701/blog/item/efc01fd3d6d527d8a8ec9a7f.html      


  不记得看过多少icpc的退役贴和比赛总结了,一个星期前,在合肥,我也失魂落魄似地完成了最后一场正式的icpc比赛,像很多ACMer一样,遗憾地告别了赛场,比赛的细节我虽不想再去回顾,但是,正如xx的《在南京》一文在开头所说的,你仍然忍受不了那种难受。我也必须走出来,故写下这篇合肥总结,也当是我的退役贴了。

第一天:
         在教练会中已经说明,三道题中,有两道是网赛中最难的题目,但一道数据被改得非常弱,可供大家测试系统,这也就是那个最大重复子串的题,热身赛开始,我们怀疑这题直接输出样例就能过,但还是敲了个n^4的暴力,提交后pe一次后ac,另一道原题是network,就是无向图桥的那题,由于这题也ac过,代码又比较长,所以不愿意再做这题,直接去做最后一题,这是个非常简单的网络流题目,我们使用的是最大流的做法,当时由于脑残没有意识到这题的流可以都是整数(也就是说,还可以用拆点+匹配做),所以直接用的double,因该是某些精度的问题,一直wa到比赛结束。

第二天:
         liam从前面读,我从后面读,kevin从中间读,我读完最后两题,完全没什么思路,liam这时读完第一题,是道简单的二分,然后让我去敲,二分初学的时候我经常写错,所以这次我也敲得很仔细,当然也很慢,快1个小时的时候,才1a了这题。

          kevin读的e题ms是一个需要优化的dp,f题ms是一个最大团,但是点的数量达到2000,唯一的附加条件就是存在某时间段,所以可能并不是搜索的最大团去做的,这两题我们先pass。

          b题是一个数论,kevin说ms是中国剩余定理,不过他没想清楚,后来我们也没有谁有时间再去看这题(确实是中国剩余定理)。

         交换一些题目后,d题我想到了一个做法,先强连通分量缩点,然后不断找最长路径,不过敲好后tle,思路基本正确,但是找最长路径这里使用了bfs,而且是找一条后又重新bfs,这个做法太暴力了。

         c题的题意似乎有些古怪,是要用一些圈覆盖到s和t之间,我们不太确定的是是否所有的点是否该在圈上,问了一下之后返回no response,我们觉得如果不是覆盖所有的点似乎有点太难做了,所以我继续改d,又tle,这时已经有人出d了,而且过c的人开始变多。我们讨论出了一个c的做法,要讨论入度,出度之类的,总之很复杂,liam有些犹豫地开始敲这题,然后我开始重新思考d,首先发现求DAG最长路完全可以先拓扑排序,再dp,于是改了一次还是tle,绝望中把找路的次数限制了下,返回wa。

          kevin用暴力尝试了一下b题,返回re。此时比赛已经接近封榜了,而我们才出了一道题,这时两题的已经非常多了,3题4题6题的队伍也有不少了,这时liam的c敲完,但是调试起来ms有些困难,我这是终于确定了一个n^3的算法,先拓扑排序,然后dp所有把i到j的最长路径求出来,然后再枚举每条边,看这题边是否是两点直接的最长路径,这样,封榜后两分钟,终于ac了这个题。

          然后重看c题马上发现点不需要全被覆盖,而且确实应该是道水题,只要能找到s到t的两条路径,就是满足的结果。一个可行的方法就是最大流,不过提出这个想法后被问了一下复杂度,点数和边数都很多,大家一下子都懵了,忘记了这个最大流流量只为2,就只是最大流增广两次。

          这个方案被否定掉,又没什么思路时,我开始直接尝试两次bfs找路,且第一次bfs后删边,我现在很奇怪我当时为什么会做这种不明智的举动,一个明知会错的算法,当时我可能是感觉过这题的人数太多,可以水一水,但这题好像是不能bfs水的,返回了wa(不过ms很多队用两次dfs找路,且第一次dfs后删边),然后来被狂bs。后来终于想到,两条路径,这就是一个双连通分量啊!

          只剩40分钟了,这下似乎终于可以ac了c这道过的人数第二多的题了,马上coding,不多久敲完,但是没过样例,发现有重边,改了个地方,囧,还是不对,我开始有点慌了,而这时他们由于很少写图论,也无法帮我,尝试性地改了个地方,过了样例,交wa,再改,再交,wa,一直wa到最后,直到一次好像是比赛结束后的提交一直没返回结果。。。       

         直到晚宴,我都一直以为我是重边处理的有问题。

         由于最后两题的队特别多,而我们d题罚时特别多,我们比较怀疑是否有铜牌,晚宴时,主持人首先宣读铜奖名单,可是没有我们,我们相当失落,当他第二次宣读时,我非常自己地听,也完全没有没有我们。

         只好随随便便吃点东西,聊聊天,消解消解。主持人已经开始宣读银牌了,这时,我们好像听到一个熟悉的学校名,但我们不太确定我们是否听清,直到反复宣读,我们才发现没有听错,就是我们,于是领来奖状,居然真是银牌,我们奇怪,惊讶,当然也很惊喜。这时我们开始怀疑我们的最后那次不返回提交是否ac了,或者rejudge了,湖大的博士开玩笑地问我们是不是需要申诉一下:就说我们不需要银牌,需要铜牌,呵呵,当然是不要申诉了。

         不过短暂的高兴之后还是很郁闷,因为我几乎确定那次提交绝对是错误的(实时证明我们确实只ac两题),而且此时我意识到我的错误其实主要并不在于重边(后来可以处理了),而是一个非常丢脸的错误:求桥所分割的图的分量,不是先要做一次dfs,本质是一次树形dp么?然后求出一些数组,其中有个数组是low[],或其他称呼,表示当前节点及子结点的后向边所能连到的最高祖先,判断s,t是否在一个分量中时,我居然直接去比较low[s]和low[t]的值了!实际上,是还需要再dfs一次确定分量的啊!!!

         而这些过程,以前敲过,我自认为我理解得不错,而且热身赛也给了一次机会发现自己对这些东西有遗忘或是不完全理解,可是,历史就是在人们这些“自信”中反复地重演。

第三天:

         合肥乱逛了下,得出一个结论,中科大是所好大学,合肥不是所好城市,20块钱去了李鸿章故居,里面没什么东西,但是记住一句诗:秋风宝剑孤臣泪,落日旌旗大将坛。觉得对账和意境都很不错。

------------------------------------------------------朴素的分割线------------------------------------------------------------

         虽然最后居然还有个银牌,而且本来我们也不奢望金牌的,但是,我们这个银牌的含银量到底有多少了?

         竞赛结果在如下网站公布:http://acm.ustc.edu.cn/standing.html 即使不算上特邀队,我们的排名甚至都比我们在北京赛区的比赛的排名还低。(按科大的所谓邀请赛的排名,我们就是铜牌了)现在我们这样的成绩放在北京赛区或是杭州赛区,铁牌都拿不到,关键是,这场比赛的过程,完全是一个极度被虐和失败的过程,完全不像一支准备了接近一年的队伍,我图论虽然也写了些题,但怎么似乎还没有入门,到了比赛连双联通分量都不会写,连dp求dag最长路都还要想,连水题都不能切完,只能眼看着自己浪费着队友和队伍的宝贵时间,以至于整场比赛,其他他们有可能ac的其他题目,都没有来得及思考。

         我不因该由于一次失利这样往心里去,其实我亦不会,我其实比较难过的一点是,一直以来,我似乎就一直是失败的,我对自己的要求其实也不太高:不能太失败。但是我往往就做什么都是非常失败,在回来的火车上,我想起了黄金雄的《为什么时光不能倒流》,是啊,为什么时光不能倒流,让我回到那一个个失败的瞬间,让我改正我的错误!

         够了,抱怨还是到此为止吧,不小心又说了些语无轮次的话。把握当下,这是所有人都知道的道理,对于以后的学习和生活,我只能说,我尽力而为吧,我需要更坚强地承受和分析我的一切失败。

         ……

         最后是一些感想:学习东西,还是要系统,完整地学习,如果你选择留一些疑问,那么你就必然选择在机会面前留巨大的遗憾,而机会,是不常有的。比如赛区赛,做不出自己不会做的题目不难过,但是明明是很清楚的题目做不出,才会非常遗憾。另外,你错过的问题,绝对不要保有侥幸心理,觉得这次出过的问题,下次再出的可能性比较小,然后pass,这是绝对不可取的,对于icpc,首先,还是要把各种知识掌握牢固,然后才能进而争取拿奖。

        再有就是,选择赛区时,我感觉,网赛做得好,赛区赛也会做得较好,网赛做得差,赛区赛也会比较差,可能是由于出题风格导致的,当然也有可能是巧合,不过我们参加的两个赛区确实是这种情况。

        另外,我越来越感到xx大牛南京的一段总结太对了,引用如下:

        “ICPC的赛场是一个局面极端容易失控的地方,每个选手都应该在赛前做一系列的充分准备,不要只局限于嘴上讨论遇到什么问题该怎么解决,在比赛时乱起来是没有章法的。还有就是,错一次,即使和我一样在南京遇到与此的挫折,也不一定就可以完全学会如何控制自己的情绪,比如我,在之后的成都赛区又一次遇到了类似的问题,我依然处理的很无奈。第三点非常重要的事情,如果你不是一个非常厉害可以一手遮天的人,那么请不要在平时训练时和队友分头负责做哪些类型的题目,一定得有个交集,不然将导致最后互相听不懂对方说的什么东西,这有违团队理念,必将受到制裁。”

       他这篇文章我看过很多次,但是他所提到的这些,我们还是没有做到,尽管我们也做了一定的努力。  

          对与CSU的新ACMer,如果你看到我这篇文章,且决心在ACM比赛上取得一定成绩,我希望你们抓紧时间看书和做题,你们还有时间,ACM is just a game,这话虽然说得不错,但对于现役的弱校选手,那就决不仅仅是一个game,而是一个艰苦奋斗的过程。甚至,当你发现周围你没有任何支持(尤其是学校)时,你需要坚持你的想法,套用开复的话说,就是you need follow your heart。我已经退役了(当然告别icpc不代表告别算法)。我现在能做的是尽量抽出大三下的时间来帮助你们,希望你们become the winner of the game!

          至于这个blog,以后应该不会写什么东西,但我会修正以前写的一些汇总贴,让它们尽量对我们这些弱校的ACMer们有一定帮助(偶尔发现有人赏脸转载我的帖子,但是希望转载时不要做论坛币,或者回复可见这类限制,这比较恶心)。

         写完这篇文章的时候,杭州赛区的比赛已经结束了,我们学校另一支队(其中lda是大二,非常非常有天赋和潜力),拿了个铜牌,对于lda来说,这也是算是个不错的开头了,虽然天资优秀,但训练程度还完全没达到icpc的要求,希望以后加油啊。同时也要祝贺hnu的footman杭州摘银且ac一道只有他们过的题,、

  最后,感觉各位支持和帮助我的ACMer们,尤其是我的队长和队友,还有hnu的doctor Wu和他的teams。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:518781次
    • 积分:7005
    • 等级:
    • 排名:第3489名
    • 原创:211篇
    • 转载:200篇
    • 译文:1篇
    • 评论:47条