noi2020 AFOOOO记
DAY -1,0
到宿舍之后发生了一些神奇的事情。
感觉 Ag 还是能打的,所以不是很慌。
不知道有什么好颓的,所以经常去自习室看一看 vjudge 上做过的题。
DAY 1
开场发现 T1 冲一个矩阵快速幂就行了。
然而有一个美食节的限制,所以倍增预处理一下转移矩阵,就可以只维护向量来做这道题了。
T2 没有啥思路,但是显然对于每个点只需要维护子树中返祖边到达的最深的点,所以 dp 肯定能做。
T3 一眼就是不可做的毒瘤数据结构,没咋想。
于是 30 分钟把 T1 敲了,直接过了全部样例,感觉不会挂。
T2 的 \(n^3\) dp 显然,仔细想一下状态数并不多,所以实现精细就可以 \(\min\{n,m\}^2\) 的样子。
这样的话是不是能启发式合并,仔细想一下大概就是维护一下类似下标取 \(\max\) 的卷积的东西,所以大概可以线段树维护的样子。
然后发现似乎并不好写,标记不是很好维护,突然想到可以用矩阵乘来实现打标记,这样就可以少讨论许多。
这样的话时间复杂度是两个 \(\log\) 的,仔细分析一下空间,因为轻边个数不多,似乎只要回收节点,空间复杂度可以分析到一个 \(\log\) 的样子。
然后就冲了一百多行,最终11点左右还是调出来并过了拍,感觉88分还是很稳的,自测了几个很水的树,都能在 1.5s 左右跑出来。
然后就给 T3 的部分分拼了拼,打了打特殊性质 A 和 C。
查分看到 100+100+64 还是很震惊的,果然 T2 数据并不强,听说直接暴力就能拿到 96+。
T3 的特殊性质 B 数据水了,放过了 \(n^2\log n\) 的暴力。
听完讲题发现这个分还挺高的,大概在正式选手 10~20 名的样子。
然后继续去自习室看了一会题。
DAY 2
考这场之前心态就不是很好,因为实力确实不够。
DAY 1 成绩好的运气成分太高,一直担心会被翻盘。
开场看完 T1,想了一个贪心。(考场全程未发现 \(m \geq n-2\))
每次取最小的是不劣的,如果不足,大概可以接着取最大的或者刚好能满足的样子。
写完发现大样例不能全过,自闭了。
仔细观察特殊性质分,有一个 \(m=n-1\),大概是说形成了一棵树?
手玩一下大样例发现确实是这样的,这样的话大概可以通过选最小的和最大的(可以理解这样总是足够的),来通过子问题归纳正确性?
所以对于 \(m \geq n-1\),可以用一样的方法去做。
对于 \(m \leq n-1\),其实就是把原图划分成 \(n-m\) 棵树,对于每棵树都满足点权和合法,然后都做这样的构造就行了?
这样的话也就利用到了值域并不大的性质,只要做背包就行了。
要求的点权和是变化的,但是注意到每增加一个点,要求的点权和增加 \(k\),所以只要给每个点权减去 \(k\)。
中途可能会出现负数,但是注意到只要点权从大到小排序就可以规避这个问题。
大概可以用 bitset 优化,只要把每个 bitset 都记下来,就可以实现回溯构造方案。
然后写了个暴力 dp,因为复杂度多带了个 \(n\)(没有发现 \(m \geq n-2\)),没有信仰跑最后三个点。
T2 T3真就啥也不会。
T2 随便手玩了 12 分,结果还少判了一种情况挂成 4 分。
T3 没想出来部分分咋搞,写了一个 \(\text{tarjan}\) 判割边输出 \(-1\),写了一个最短路。
然后自闭到考试结束,感觉自己 DAY 2 真就被翻盘了。
出考场发现好像大家分都不算高,挂的还不算惨?如果不挂分,进队似乎还有希望。
吃饭与 dky,gls,zbk 等神仙讨论,发现 T1 大概就是正解,然而没有看到数据范围,有点自闭。
发现 T2 少判一种情况,挂掉了 8 分,有点自闭。
然而如果不继续挂,似乎 85+4+15 也不算特别少。
所以大概看查完分挂没挂就行了,挂了就 Ag 滚粗,没挂差不多就进了。
于是煎熬等查分,结果查分还咕掉了。
在门外坐了半个小时,去食堂喝饮料坐了半个小时,回宿舍躺了一个小时,终于能看分了。
实际得分是 60+4+20,不知道为啥 T1 挂了 25 分。
没有下发数据,于是也懒得去管它了,挂了一半就很难受,感觉差不多是银牌前几名,有点自闭,继续煎熬。
不管怎样,或许是最后一次的讲题还是要听的。
讲题途中突然得知 Au 了,看到了榜,心情也很平静,没有激动的情绪。
虽然是前 50 中唯一一个 DAY 2 低于 100 分的,但终归是没有挂的很惨。
于是去 PKU 签了个约。
DAY 3
颓废+围观国家队答辩颓废+闭幕式颓废+颓废
DAY 4
颓废+在高铁上颓废+在家颓废
分班被分到 873 了。