GDOI2020 游记
Day 0
上午码力全开 一连切了一堆模板题
希望考场上不要忘吧QAQ
坐了2h的车到广州,到了酒店发现位置似乎很偏。。。附近根本没有什么超市餐厅什么的
晚上还是在写模板题。。。
Day 1
看了下题 感觉T3不太可做。。。T2打算过会有时间再来推
于是先去写T1
第一眼看起来好像是三分最佳温度?然后写&调了1.5h左右(现在就是后悔)
发现这个函数平的地方太多了,三分很难找到最高点。。。
于是决定先去写下T2的部分分,避免调T1调到考试结束
花了20min写了subtask1(暴力)和subtask2(Lucas定理),30pts
没去推式子,都是直接模拟的 考试结束之后想想m=0的式子似乎不是太难推,就是个二项式定理。。。但是也就多10pts
不过考完看了题解 什么第二类斯特林数,下降幂 似乎根本没做过这类题啊 我太蒻了
更搞心态的是考完发现好像人均爆切T2?
T1发现三分不可做,于是决定换一个思路
想了一会终于想到 直接二分找中间的断点就是最优解了。。。感觉自己被一道思路这么sb的题卡了这么久
距离考试结束只有2h了 感觉今天要0题AC退场了。。。
然后写T1,发现自己只会\(O(n\log^2 n)\)的树状数组套二分。。。
写出来发现还要找到最优温度区间内最高的温度 这个好办 再二分往后找一下就行了
写完赶紧拍了一下,万幸最后是拍上了
抱着常数小的侥幸心理测了一下极限数据 跑了10+s。。。于是放弃卡常了
然后回头看了一眼T2,T3,感觉还是非常不可做的样子。。。
再来想想T1的\(O(n\log n)\)做法 感觉应该是在线段树上二分(实际上确实是)
但是怎么二分找断点?想到可以维护冰火的差值 然后找最接近0的位置?
于是去码了一下 写完发现虽然断点是找到了 但是并不会找最高的最优温度。。。似乎还要再写一个线段树上二分?
发现自己线段树维护的东西不太对 应该要维护最大最小值比较方便。。。
然后此时只剩15min了,想到就算写完线段树还要调半天,于是很无奈的把之前拍过的60分做法放上去了。。。希望CCF能放我几个点过去?
要是T1开场没浪费这么多时间 多30min说不定能把T1调出来。。。感觉这场这个分数低于预期了
出来之后本校神犇说大众分160?感觉自己可能是GDOI2020垫底选手
期望得分60+30+0
奶一口明天有字符串和树论
Day 2
两天的密码都是随机串。。。不过都一次输对了
看到T1「信号传递」。。。总觉得昨天在哪见过这个标题?
看题 \(m\le 23\)一眼状压DP 考虑怎么压状态纠结了半天 最后口胡了一个\(O(n^22^n)\)的DP 两个小样例都过了?
我:就这?
然后拍了一下 居然拍上了。。。我自己都不知道这个DP正确性怎么证。。。
然后花了半个多小时把DP优化到\(O(n2^n)\)。。。但是常数爆炸,空间爆炸 预处理的时候开了4个辅助数组
再拿回去拍,试图把对拍的数据增大一点 WA了?突然慌得一匹
然后发现其实是暴力程序的数组开小了。。。
\(m=22\)的点跑了2.4s 感觉80分很悬?
而且数组大小爆炸 自己算了一下开了480MB。。。限制是512MB 希望不会MLE(应该用不到这么多就没关系吧?)
upd: 用lemon测了一下 虽然似乎不会MLE 但是\(m=22\)的点T掉了啊啊啊啊
T1大概一共花了90min写完\(O(m2^m)\)+对拍
然后看了一下T2 T3
T3是那个什么矩阵树定理?没学过,告辞
T2似乎很可做?但是不知道把区间全部数+1之后异或和会怎么变
手推了一下发现可以维护\(\log n\)个桶记录每个数模\(2^i\)的余数,然后就可以\(O(\log n)\)处理区间+1后异或值的变化
然后发现套一个树上启发式合并就可以做到\(O(n\log^2 n)\)了 众所周知dsu on tree的常数不大 于是写了一下 大样例又是直接过?今天rp++啊
测了极限数据发现2.1s。。。然后发现取模\(2^i\)可以改成按位与\((2^i-1)\),然后就变成了1.8s。。。感觉还是很悬 但是没办法了
花了10min写对拍 完美的拍上了 就没去管了 感觉应该能AC?
中间其实码了挺久的 我的算法细节比较多 写完这题差不多还有1h多
然后看一下T3 10pts显然可以暴搜
第二个subtask是树或者基环树 基环树可以枚举断边
然后很蠢地写了dfs找环+线段树计算gcd
出考场后一众神犇:为什么要写线段树?不是最多才30条边吗?暴力枚举断哪条不就完了?
写了100多行拿到了30分
然后剩下30min基本就是在思考T1能不能优化到\(O(2^m)\) 感觉不太可做 但是就算常数奇小 \(O(m2^m)\)真的能过\(m=23\)吗?
不敢写register。。。万一CE爆零怎么办?
然后没有得出任何结果 于是就盯着对拍程序等到考试结束了
期望得分70+100+30 希望T2不要被卡掉。。。
upd:完了 测了下链 发现T2桶数组开小了 如果点权卡满的话 链的两个点都要挂掉了 n卡满的点也不一定过得去。。。感觉要70+40+30原地爆炸了
被洛谷阴间数据卡到30分。。。这点权怕不是全是500000吧/jk 随机点权应该能有60?
6.23 upd:果然D2T2还是被卡爆了。。。总分60+30+0+80+30+25=225
D2T1比预想的高10分?真就少爷机呗 D2T3蜜汁WA了5分
最搞心态的是 如果D2T2数组没开小就AC了。。。295->225
反正295也不是个多高的分数。。。
番外:
你们可能不知道GDOI考到600分是什么概念
我们一般只会用两个字来形容这种人:神犇!
我经常说一句话,当年您能 AK GDOI,我GDOI切一题不是问题。
埋伏他一手,这个Day1不能做,这个Day1不用做,我切Day2。
反手奶一个超级树论题,闷声大树论。他真出超级大树论?但是不用怕,他的题孙不了我。点权值加深度,异或和,很牛逼这个题,如果把这个题换成模板题,我这把将绝杀,但是换不得。
n<=500000,~,直接套启发式合并。
敲一份代码一遍过样例。对拍快点,对拍,暴力程序你n<=5000都跑这么慢吗?暴力程序你快点啊!对拍别磨磨蹭蹭的。
对拍爆出WA了。暴力程序写错了,应该这么写的。
给出题人倒杯茶好吧,出题人给你倒一杯卡布奇诺。
给出题人倒一杯卡布奇诺。开始你的毒瘤数据秀!卡他,卡他,漂亮!(悲)
20个数据点你能秒我?你能秒杀我?你今天能把我卡到30分,我!当!场!就把这个电脑屏幕吃掉。