GDOI2023 游记
去年的游记:https://www.luogu.com.cn/blog/LHF/xing-xuan-bao-zha-ji
Day 1
8:00 左右来道赛场外面,然后在那里和各位大佬见面,为了充足调整,所以我 8:20 才进场。
然后是公布密码,密码居然不是“愚人节快乐”!?
第一层密码是四个 up,第二层好像没什么特点。
开题,先看 T1。
不会吧不会吧,怎么会出这么简单的题目?
不可能,一定读错题了,再读(
然后事实证明,题目确实很水。
于是就去看题面中是否有坑。
不过没有。
很快就写完了,大样例也一遍过。
然后去看 T2,感觉 T2 有点抽象。
于是又去看了一眼 T3,看了一会儿也没什么思路。
于是先去看 T2,从部分分入手。
首先不难观察选出的点集一定是一个连通块。
考虑
然后看
但枚举连通块多半是要变成树上背包的,无法接受。
突然观察一下,不难发现重心一定会被选,于是钦定重心为根,对于每一个子树,如果大小大于等于
然后不难发现稍微处理一下,遍历到的点数为
于是这样复杂度就是
从另一个角度想,考虑对于一个简单环,如果环上大于等于两个点被选,那么整个环都要被选。
于是建出圆方树,同样是找重心,然后还是按照之前的做法。
然而细节好多。
写完了 T2 后还有两个多小时,有两种选择,想 T3 或者拍 T2。
先去想了几分钟 T3,突发奇想测一下 T2 极限数据,结果卡住不动了。
然后发现是爆栈了,开大栈之后还是不行。
结果发现做法没处理好,单次有个地方退化成了
还好问题不大,很快就弄成了
此时距离比赛结束还有两个多小时,我突然感觉应该有人能 AK DAY1。
然后看 T3,先考虑策略,然后发现可以看作先开除一些人,然后要求剩下的人都能匹配。
这等价于每一颗子树内员工数
于是如果没有删除操作(特殊性质 A),就可以直接树剖了,复杂度
然后再看,发现直接用可并堆暴力处理每次询问居然可以拿
不管了拼命堆暴力就是了。
于是先写了暴力,然后开冲特殊性质 A,然而最后没调出来,于是只有
不过好像能过同时满足特殊性质 AB(特殊性质 B:
然而我是 nt,事实上特殊性质 A 套一个线段树分治就可以了,复杂度
出赛场后发现人均
Day 2
今天的题偏难。
先开 T1,直接来一个开幕雷击,我根本不会分析博弈题,而且策略看起来非常麻烦,估计要寄。
然后看了眼 T2,好像还比 T1 好做。
一看数据范围:
于是思路就出来了,先建出有向图,转化成挪动棋子游戏,因为有奇偶性,于是就变成了公平组合游戏。
然后思考一下,发现好像并不能直接爆搜解决。不过做法还是挺显然的,考虑从后往前倒推,做一个类似拓扑排序的过程。
这样复杂度
然而写完之后一看时间,发现已经过了一个半小时了,感觉耗时有点久(代码长度 2.7k)。
又去完善一下 T2 思路,先建出图,然后考虑基环树就对环暴力,否则的话……
然后我发现我不会了。
于是又想了一下,其实题意变成了这样:
给定一棵树,每个点有点权,对于一些边,你可以将这条边的某一边的子树整体加
首先可以树上背包做到
考虑对于一条边,把哪边子树
思考一下,可以得出一个结论,存在一个点满足所有边都指向这个点。
然后就可以换根 dp 了,然而细节贼多,就换根那几行我盯了差不多半个小时。
然后发现基环树有个部分写错了,居然又是 WC 犯过的错误,还好发现及时。
反正 T2 总共写了 5.1k,我突然挺佩服自己的代码能力的。
然后把
于是开了个 O2,结果直接挂了。
此时距离比赛结束还有不到一个小时。
于是就去开虚拟机,结果虚拟机还没成功开机就查出错误了:我有个地方临时变量没赋初值,由于我代码中有个地方写得比较特殊所以很难查出来。
于是就嘎嘎乱过。
然后有两条路:检查 T1&冲击 T3。
不过 T3 我看了几眼发现基本不可做,于是干脆去检查 T1,事实证明这个策略是正确的。
我看了一会儿 T1,发现我手写队列的指针没归零,可能会爆数组。
于是赶紧改一改,还好最后没出问题。
然后也懒得对拍了(其实基本无法对拍,T1 这种题正解就是暴力)。
出赛场后听说 Bird 拿了
据说 T1 大家都花费了超过两个小时,我突然感觉我 T1 还算是写得比较快的。
最后估分是 DAY1:yundouxueyuan.com 上测试我是这个分数。
希望不要挂分。
有道小图灵上 D2T2 挂了 TAT,挂成 所以 GD 省队今年是不是没有原集训队了。
另外,疯狂 Orz 初二学长 wtc,他切掉了 D1T3,但遗憾的是他的 NOIP T1 和省选两天的 T1 都挂掉了(悲)所以无缘省队。
最后,疯狂膜拜 MoQZ大师。
关于 D1T3 我为啥小图灵上 但因为我赛场上手贱调代码时没删调试所以直接白给了。 小图灵上可能刚好没有调用到我使用输出调试的地方所以多拿了一点分。
总结
这次省赛打得不错,但还是有一定的提升空间:
-
减少代码的出错率,争取做到零挂分。
-
增强代码能力、细节处理能力,减小写代码的时间。
还有一点非常重要,考前一定要腐败!!!!!!DAY0 晚上我在复习知识点,结果很晚都没睡着(好像只睡了 4h),DAY1 晚上我从 7:30 腐到 11:00 结果躺下去几分钟就睡着了。