day0 报道
上午 8:30 就从诸暨出发了,开始了 \(6\) 个小时的高铁行程。车上不是听歌看风景就是睡觉,反正时间很快就磨过去了。唯一的问题应该是没法吃午饭只能吃零食充饥了。
等坐地铁到酒店已经 \(4:00\) 了,广东确实比诸暨暖和不少,火速褪去棉袄与秋裤,清爽多了。
晚上 jjh 的父亲请我们吃海鲜自主餐,在此进行感谢。
看了一点之前写过的题。
day1 IOI 个人赛
8:00 进场,8:30 开始。
先看了一眼四个题,T1 应该是签到,T2 有点神秘,T3 是 counting,T4 更加神秘。
于是先做 T1,发现 \(\le\) 很不好做,但是发现 \(M\le 1e7\),于是直接把 \(\le\) 改成 \(=\) 做前缀和。然后就好做了,每一个质因子独立,对指数做完全背包就可以了,显然指数最多是 \(24\) 的,所以这个背包怎么写都 T 不了。然后瓶颈就变成质因数分解了,写个欧拉筛预处理一下就好了。写得中途主办方说出了点问题先不要提交,然后把比赛时间延长了。写完之后刚好把系统修好,交了一发还错了,差点以为做法假了,查了一下发现是取模没取干净。
然后去看 T2,发现送了 \(31pts\),然后想了一想感觉他这个走的过程可能很复杂,又看到 \(c_i\) 递增这档分,于是感觉可能是神秘贪心,就先放了。
T3 一开始想容斥,但很快发现不可做,于是考虑正难则反,然后幽默的发现自己不会 \(O(n)\) 计算总方案数,不过反正我不可能会正解,就直接写了个 \(O(n^2)\) 计算总方案数的 DP。然后考虑计算不合法方案数,先考虑给定集合怎么判断不合法,很难不想到按照左端点排序,然后变成右端点不能出现长度 \(\ge 3\) 的下降子序列,也就是说每个右端点要么是前缀最大值要么是后缀最小值。然后再结合 \(O(n^2)\) 计算总方案数的 DP,不难把状态拓展成 \(O(n^3)\),直接转移是 \(O(n^4)\) 的,先写了一下过了样例,发现可以前缀和优化成 \(O(n^3)\),不过在优化前我打算先交一发,结果他直接把 \(n=300\) 过了,想了想觉得 \(O(n^3)\) 做法没有继续优化的前途,那还有啥好说的,直接不优化了。
然后看 T4,仍然感觉很神秘,但是部分分好像给的很足。结果想了一会发现自己除了暴力之后就只会 \(b=1,c\le 10\) 了,破防了,写完直接跑路。
回头看 T2,感觉要贪心的话会很麻烦,于是考虑是不是优化建图,但是想了半天也没想出来怎么优化建图,然后又考虑贪心观察性质,又是什么都没观察出来,仍然不会 \(c\) 递增,于是先把 \(31pts\) 写了。
还剩两个小时,我感觉只要再做出来一题就 win 了,然后就开始在三题之间徘徊:
先想现在分最高的 T3,发现可以转换成网格图走路,但是这个走路的方法也太诡异了,而且还有不能跨过两条线的限制,反射容斥又做不了,果断放弃。
又想 T2,在优化建图和贪心之间徘徊了好久,仍然啥也不会。
T4 更加不可能会了。
然后目的就变成骗更多的分了,发现 T3 输入一个数输出一个数,果断打表找规律,结果啥也找不出来;T4 感觉乱搞可以骗很多分,结果发现自己压根没有乱搞能力,模拟退火也不会写,无语了。
坐牢了一个小时,最后还是 \(100+31+45+14=190\),也就是说别人只要会两个题就比我高了......
去掉 AK 的两个 AI,排名刚好 \(rk100\)。
怎么大家都会 T2 啊,长剖优化建图是什么东西啊,震荡杨表是什么东西啊,二次函数最低点函数值是什么东西啊。
酒店的网怎么这么卡。
进行一个随机游走寻找饭店。结果走了 \(1h\) 碰到五个大学愣是一个饭店没找到。最后凭借超绝路感走到中山大学旁边的 GoGo 商场。吃了盖浇饭,感觉一般。
打了会 MC 就睡觉了。
day2 ACM 组队赛
目标:不做负贡献。
开始前先订了个开题顺序:xry ABCD,ywz EFGHI,我 JKLM。
但是他开考之后纸质试题还没发,只好先一起看题,很快发现 C 是签到题,ywz 写了一下过样例了,交了一发 WA 了,很快发现问题,再交一发过了(C 2A)。
又往后看了几题,感觉 H 也是签到,这时纸质试题终于发下来了,开始按照分工看题。
很快浏览完了四题,感觉都不太可做,有点慌,但是为了稳定军心我不能表现出来。
ywz 很快就会 H 了,交了一发过了(H 1A),然后开始看 G。xry 声称他会 D 了,但是有点难写,就让他先写写看。
重新省视了一下四题,感觉 J 很多项式,但是我不会多项式,所以打算到时候给他们看。K,M 看着就很难,L 感觉不是很难。
于是开始手玩 L,感觉就是先把前面几个贮水点放满最后一鼓作气走到最远点。一开始忽略了背包容量上限,觉得那不就是个模拟题,结果一直不理解样例是啥意思,后来终于发现了还有背包容量的限制。所以应该是转换成判定已知前面几个都放满了最远是否能到达位置 \(x\),想了一下感觉不太能理性分析整个过程,于是开始凭借经验猜结论。猜了好几个柿子最后终于猜出来了一个能把小样例过掉的 \(O(n)\) 判定方法。最后一段显然可以二分,但是前面放水的过程如果每次都用这个判定的话就要 \(O(n^2)\) 了。由于自己完全不会证明这个柿子为啥是对的,开始怀疑做法是不是假了。
xry 的 D 有点卡了卡了,ywz 把他换下来开始写 G,一发过了(G 1A)。压力给到我身上。
本来打算借个机子验证一下柿子对不对,但是 xry 说他调出来了,就先让他写。于是先默认这个柿子是对的,开始想怎么优化,中途 ywz 还过来问候了一下,本来打算交换的,但是最后还是没交换,他开始想 F。很快发现这个柿子很容易优化(笑点解析:我差点全局加全局最小值写了个线段树),但是 xry 还在卡常,于是我先去看别的题。两个小时的时候终于摸到键盘了,代码是真的好写,不到 \(500B\),样例竟然全过了,大胆交一发,直接过了(L 1A)。
写完之后帮 xry 写了个快读卡常,但是仍然 TLE,于是他决定换个做法,现在大众题就只有 D 没过了。
让 ywz 看了一眼 J,不会,于是和 ywz 一起想 F,想了一百个假做法还是不会 \(m_1=0\)。
xry 说他想到新做法了,只需要线段树,开始写,ywz 怕他这个新做法又被卡常,于是也开始想 D,很快他说会了一个只需要树状数组但是八倍常数的做法。然后他俩就轮流写代码,一个人写的时候另一个人就调。我就在一旁继续想 F。
但是仍然不会,看到榜上有好多队都过了,有点急。这个时候 xry 调出来了,交一发,终于过了(D 5A,其实我们队罚时吃的还算少的)。起到了鼓舞士气的作用。
看一眼榜发现可做题只剩下 A,F 了,由于我构造和乱搞能力都为 0,所以 A 给 xry 写乱搞,ywz 去看其他题。
然后 xry 发现 A 随机做法貌似很容易就随出来了,交给 ywz 改成能提交的样子,结果还真的过了(A 1A)。
只要做出来 F 就 win 了,于是开始主攻 F,还剩 1.5 h,ywz 先把 \(m_1\ne 0\) 的部分写了。中途 xry 又提出来了若干假做法,但是都没办法修正。
封榜的时候 ywz 刚好写完,然后三个人开始一起想。就在又 pass 掉了 xry 的一个假做法后,xry 看着我给的 hack 突然意识到这玩意的答案不会很大,拿计算器按了一下发现不会超过 \(49\),ywz 写了个背包发现需要 check 的方案不超过 \(3000\),于是直接爆搜并判断即可,但只剩 0.5h 了。
重任再一次落到代码能力最强的 ywz 手里,但显然这个时候换谁都会很慌,最终仍然没能调出来。
感觉自己好没用啊,虽然没做负贡献,但感觉也几乎算是没做正贡献了,纯纯被带飞。
最后颁奖典礼 IOI 个人赛拿了个 Cu,组队赛擦线(\(rk29\))拿了个 Ag(我们学校三个队伍全是 Ag),Konata 还上去唱了首《青花瓷》,有点惊喜。