第九场组队赛总结
周六了,虽然今天没有hdu的多校联合比赛,不过我们还是要继续进行组队的训练!这次的比赛在hdu的diy进行。
今天做的题不知道题源是哪里,所以只能稍微讲一下今天遇到什么题目了!今天的题据说是按照区域赛的难度来设定的,所以做题的数目还是和之前的差不多,也就3题。可能是今天比较幸运,其他队伍都出现了莫名其妙的卡题,最终我们队因罚时较少,登顶了~
刚开始的时候,还是队友负责读题,我就在一边吃午饭,貌似刚开始几分钟就有队伍打算出一道数字组合的题。今天我吃饭也挺快,发现有人wa那题的时候就已经吃完饭了。然后我就快速的看懂题目,跟队友讲出我的想法,并切分析出解决的具体方法。代码不长,不过我在代码的过程中突然想到一个可能会造成wa的小trick,那时就想到那支一早就想出这题的队伍应该就是因为浮躁,判断漏这个条件吧?!然后我就加上我的想法,把代码一气呵成打出来。测试了好几组数据,对了,果断上交,ac,这样就拿到一个这题的fb了~不过我猜想,应该是我们讨论trick的时候太大声了吧,在我们过了以后几分钟,其他队伍陆续出了这题........囧!当时想,也没关系,赶紧开下一题就是了!
然后看到的是一道矩阵快速幂加博弈的题,博弈我昨晚才看懂一点点,如果给我一个人单挑出来是肯定不行的,于是我就把博弈这部分的处理交给了队友。队友花了好些时间才打表出来。在这段时间我赶紧想办法找到递推出目标数列的获取方法。刚开始,将数分类写了一下,发现有那么一点点规律。然后想着想着,突然想起线代的矩阵相乘,矩阵规模才50*50,一个快速矩阵应该不会超时。在打代码前,因为发现博弈输入的数是异常的大,所以要打表找规律。打表出来,队友搞了很久都没发现规律是怎样的,然后我就凑过去看了一下,瞬间就发现一个有趣的现象:偶数都直接除以2,奇数的都是整数除法除以一个2的n次方。然后,尝试把奇数分解成二进制数,发现n是指从后面开始数,第一个0的位置。于是一个sg函数就可以简单的O(log n)转化了! 不过最糟的是,我第一次打矩阵乘法而且线代的东西很久没搞了,抄模板抄对了,可是乘的时候矩阵的左右位置放错了,所以刚开始连sample都出不来。改了一个地方,另外那个又忘记改了,搞到交上去一个wa,不过这次轮到我的队友成debug神了,很快就搞了一个数据卡住我了。然后我才发现,另外一个矩阵乘法忘记交换位置了。改过来就ac了!
在搞上面那题的时候,一道找规律的题就因为队友讲了几个字,然后我就想起了这题是要怎么做的了!代码很简单,我很快就打完了,不过居然忘记加上case了,搞到wa了一次....- - 还是队友提醒我,加上以后就过了!
剩下的两个钟里,榜基本就锁定了,其他队伍也不知道为什么就是出不了第四题,一个不小心就登顶了.......不可思议啊!- -! 不能被幸运的胜利冲昏头脑了,目标还没达成,努力仍需继续!
——written by Lyon
2012.08.18