2016.5.8 PKU校赛总结

  必须感谢PKU的包容,使得我这种没有书读的文盲得以参加off-line比赛,十分excited!下面是流水账。

  上个月在群上得知了这个比赛,然后顺便在群上找到了一位高中生队友absi2011,这位同学CF分和我差不多,也是2k出头,不过感觉实际水平应该比我强些。他一再强调自己英语水平烂到无法读题,我表示我可以打辅助读题。。我们试图寻找第三名队友,最后以失败告终,于是注册了一个2人team,队名叫“有趣的队名”。

  5.7(也就是比赛前一天)下午,正好是周末,提前出门跟队友absi2011以及和他一起来京的一位同学(好像叫waltz)见面。我对中学生的竞赛一无所知,他们也不太了解大学生的竞赛,交流了一下,从奥林匹克公园游荡到望京一带,吃了一顿很贵又吃不饱的西餐。。晚上到他们住处打了一会斗地主。。期间,absi2011一直怂恿我打晚上的CF。。

  结果我晚上真的回去打CF了,没做出第三题概率DP滚粗,竟然凭借手速涨了几分。。跟平常有CF的夜晚一样,果然又睡不着了。大概从4点睡到6点半,起床赶往PKU,很困但是只能硬刚了。。

  5.8早晨,从朝阳来到海淀以后,略微清醒了一些,我再次来到PKU计算机系的机房。比赛环境是win7,不得不吐槽键盘和IDE有点辣鸡。。

  开场以后,absi2011表示想抢奇怪题目的FB,我去敲两道签到题A和J,无压力直接1A。然后absi2011表示想到了构造题D的解法,但是需要高精度,纠结了一会我打开了桌面上的eclipse,发现居然不能建java工程,没有自动补全不想裸敲java瞎折腾,只能作罢。我读完了H,发现是矩阵快速幂,和absi2011讨论了一下,他给出了构造矩阵的公式。。然后absi2011决定手撸高精度过D,我继续思考H的各种细节。不久后,D被1A,还是全场第八个过的,其实如果能用java或者rp好点的话,是有概率拿FB的,Orz。。接着我码H,期间卡了一下,换absi2011去码G。G是一个最短路题,好像有点卡常,这题边权不会太大且图不是精心构造的,在我的建议下,他使用了SPFA,由于忘记初始化等等naive的bug,挂了3次后过掉了G。在他敲代码的时候,我已经把H想得很清楚了,然后上去过掉了H。在做这些简单题的时候,我们的ranking保持得不错,一直在10~25之间。

  比赛时间已经过去了一半,剩下的题目开始变得棘手,过得相对多的是一道我死活读不懂的C,和一道神题I。这个I题,叫“PKU Zealots”,打过星际的我一眼看出来意为PKU狂热分子,我严重怀疑出题人旨在建立对PKU的“个人崇拜”。。题目要求在'#'和'.'组成的矩阵中,识别出来“PKU”三个字符分别有多少个。。。我们同时在思考I和尝试阅读C,对于I,我们脑洞了各种姿势,最后采用了由absi2011提出的一种奇葩方法:‘P’非常好识别,因为中间有围死的区域,识别完‘P’后,把所有‘P’从矩阵中删掉,再去分辨‘K’和‘U’。具体方法是,计算字母像素点的平均坐标,看看平均坐标附近是否属于该字母,如果是识别为‘K’,否则识别为‘U’。。然后absi2011表示太蛋疼不想码,把coding这题的坑推给了我,过了一会我终于敲完了,交上去返回wa。我们只好进行改参数等各种尝试,挂了好几次,最后居然发现又是初始化没做彻底,改掉以后过了I。这时我们非常excited,absi2011还打印了两份AC代码作为纪念,我顿时感到这两年的努力都是值得的,第一次在现场赛过掉AC人数这么少的题(虽然说不需要特别高端的姿势,只需要脑洞)。。

  最后一小时的任务就是去搞那个C了,如果能过,今天就圆满了。自称英语不好的absi2011居然读懂了C,在他的讲解下,我还是不能完全理解。。我怀疑我对这题有认知障碍。。终于他不屑再跟我去讲题意了,自己去推C的状态转移方程,我在一边尝试理解题意。他开始了看起来较为艰苦的coding和debugging,我却帮不上什么忙,在结束前的几分钟,他顶住压力过掉了C,我们队一下上升了好多位,Orzzz。。最后几分钟我象征性地和他讲解B的题意以及我的想法,直到比赛结束。。

  最终我们以7题rank21完美收场(总共368队),对于一个野鸡两人队来说,这是一个非常值得骄傲的ranking!他身上确实有一些我值得学习的地方,比如那些我不会的技巧(在IDE里DEFINE,用gdb花式debug等等),完全没有对模板的依赖,还有那种AC难题的信心和意志。

  话说absi2011的英语应该不像他说的那么不堪,也祝愿他高考取得好成绩,继续自己的竞赛之路。。总之不虚此行!

你可能感兴趣的:(心得,PKU校赛)