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(nlog^2 n))的树状数组套二分。。。

写出来发现还要找到最优温度区间内最高的温度 这个好办 再二分往后找一下就行了

写完赶紧拍了一下,万幸最后是拍上了

抱着常数小的侥幸心理测了一下极限数据 跑了10+s。。。于是放弃卡常了

然后回头看了一眼T2,T3,感觉还是非常不可做的样子。。。

再来想想T1的(O(nlog n))做法 感觉应该是在线段树上二分(实际上确实是)

但是怎么二分找断点?想到可以维护冰火的差值 然后找最接近0的位置?

于是去码了一下 写完发现虽然断点是找到了 但是并不会找最高的最优温度。。。似乎还要再写一个线段树上二分?

发现自己线段树维护的东西不太对 应该要维护最大最小值比较方便。。。

然后此时只剩15min了,想到就算写完线段树还要调半天,于是很无奈的把之前拍过的60分做法放上去了。。。希望CCF能放我几个点过去?

要是T1开场没浪费这么多时间 多30min说不定能把T1调出来。。。感觉这场这个分数低于预期了

出来之后本校神犇说大众分160?感觉自己可能是GDOI2020垫底选手

期望得分60+30+0

奶一口明天有字符串和树论

Day 2

两天的密码都是随机串。。。不过都一次输对了

看到T1「信号传递」。。。总觉得昨天在哪见过这个标题?

看题 (mle 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(nlog^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分,我!当!场!就把这个电脑屏幕吃掉。

原文地址:https://www.cnblogs.com/ak-dream/p/GDOI2020.html