早上七点多就(冻)醒来了,训练了一个暑假,acm生涯的第一场网络赛,很激动。
九点开打,我拔不出网线,用的机房电脑,装的cb有问题,不能编译,只好用dev。男神电脑插上网线没有网,习惯了linux可能不习惯吧。这提醒我们以后一定要早点去把环境调好。
第三分钟,G题有人A了。我跟560开始看题,男神还在弄电脑。题意是给你n个数(n<1000),然后q(q<1000)次询问,要求你输出[l,r]区间的最大值。数据很小,我说暴力,然后560说线段树,然后模板13分钟1Y。然后560开始搞J,一个貌似是一个组合数学。好像是模板题。然后我开始看B。一开始我想枚举每一个点,然后模拟删边。然后脑子不知道为啥突然走岔了,突然觉得直接tarjan模板就好。啪啪啪敲完,过了样例,交上去wa了。后来560提醒了一下,发现假设是两个三角形并且有一条边相连,tarjan算法会把它当做两个强连通分量。想了一会,于是重写了bfs删边,然后再加一个tarjan算法,不判父节点。然后就可以处理了。应该有更好的方法,可能是我傻逼。然后11点15A了这个题。这个时候560一直在调J,他说kuangbin的模板好像有点问题,然后一直在网上找模板(事实证明是自己瓜了)。然后男神写A题的模拟一直超时,于是抽空看了一下E,给我讲了一下E题的题意。看数据,感觉是并查集,因为之前一场训练赛打了ZOJ3659,很像的一道题(可以参考链接http://www.cnblogs.com/onlyAzha/p/4783955.html)。刚才百度了一下,原来是12年长春现场E题,Fuck。想了一会,终于有思路了,就是一个离线并查集。跟ZOJ3659几乎一样,明天早上再出解题报告。这个时候男神在写H,其实H题的思路我们也讨论出来了。从前往后遍历,如果后数小于前数,就把这个节点加到当前节点的右节点,如果后数大于前数,就往前查找到根节点或者比他编号大的节点,然后插到它的右节点。但是我们感觉E题更好写,于是决定让男神去写E(事实证明这是一个错误,自己想的东西还是自己写)。男神A一直没调出来WAorTLE。560 J题也一直没调出来。然后我就让560先放弃J题,我给他解释了一下题意和思路,让他重写A题。可是一直有问题。然后我也来写。其实A题思路特别清晰,维护一个优先队列,再模拟开门,把人放到答案数组中。我写完交上去MLE。原来爆内存。刚好卡到一个常数,修改了一下,TLE。然后我发现只有一两组数据ni>10000。于是记录一下query的最大值,然后只要答案数组中的人大于query就可以退出模拟,然后再依次输出答案。交上去WA。然后一直想,看了提问,发现开门时间可能一样。于是我想到要给提问排序。然后加了排序依旧WA。赛后我们给560的代码加上排序就AC。这个时候就证明我多傻逼了。因为可能开门时间相同,所以应该给开门的时候加个循环,把这个时刻要开的门全部打开。赛后把判断改成循环就AC了。可是比赛的时候两个人都没AC。我的锅。然后男神的E也一直没能调出来。
赛后A题,我跟560随便改一下就都过了。然后560发现kuangbin的模板没问题,是他有个地方写快了,稍微调了一下也A了。明天再写E吧。
第一场网络赛,惨败。吸收经验吧。以后一定要早点去调好环境,自己想出的思路自己写,要仔细细心。
继续加油,绝不放弃。