GDOI2023 省选游记

前些时间的 WC就不写游寄了吧。/qd

upd:补了张 WC 上画的图:

寄

Day -2

上午是 wcj 的一场信心赛,刚好考场在我们学校,于是就在试机位原地模拟省选。但这哪是信心赛啊!!!/fn/fn/fn

事实上坐牢了两个小时,把虚拟机的所有游戏打了个遍,最终只过了 T1 和后两题暴力。T2 中间想的和正解差不多,但好像要用线段树分裂,我不会。

下午就是讲题,T2 真的要用线段树分裂,于是我们把 wcj 喷了。今晚九点,[数据删除]唱歌,不见不散!

不过我好像并没有提到前天我的模拟赛有多创……

然后开始复习模板,我们发现了一个新玩法,就是把 Dev-C++ 的所有颜色改成黑色,只高亮当前行,这样就可以半在线打代码了!

效果:

(这里应该有一张图,但是还没弄。)

之后我用半在线 IDE 过了费用流,SAM,SA 和 exkmp。

晚上老师给我们放了电影,大概是什么人类大战波特,名字忘了。看完之后就跟 wzy,lh 和 zxy 打块,上到 A- 又掉下来了(悲)。

Day -1

完全复习。发现 cmd 的博客是真的好用,各种知识点都有。之后和 wzy 复习之前的杂题选讲,学了一些 trick。

中午小颓一下,本来是要打 generals 的,但网实在太卡了,后面就换成了 gartic。

下午继续复习,本来计划晚上如何开颓,但老师突然冲进来说不能再颓了,只能作罢,换一些轻量级的东西颓。这里推荐 puzzle collection

这就不得不提 CF bot 了,它能在 Q 群内实现 CF 大战,具体指的是随机一道指定 rating 的 CF 题目,然后两个人比谁先做出来。zxy 把这个 bot 拉进群后我们就开始了 800 大战。是的,就是随机一些 *800 题目比谁手速快。

其他学校的来试机了,zsh 在群里问我要不要面基,我就答应了。最后就是社恐的我在行政楼楼梯跟他擦肩而过……

晚上跟 wzy 比了一道 *2500,但是想了一个多小时没想出来,只好放弃,看题解之后发现我是 zz。

上网水了一下突然察觉到明天是愚人节,也就是说明天有音游更新,回宿舍才发现 phigros 11点就可以更新了。怎么每次考试前都会有 phigros 更新。

早点睡觉,明后天一定要稳住。GDOI2023 RP++!!!

Day 1

昨晚睡得挺早,感觉违背了之前考前一定睡不着的规律。不过半夜还是被蚊子叮醒了。

已经开始了啊,总感觉自己还没准备好。

回机房拿了些巧克力和吃的就去考场了,我的位置比较好,只有右边有人,左边没有。

按照惯例,提前三分钟开始,提前三分钟结束,压缩包密码有两层,都忘了。先花几分钟打了 mystd,然后看题。

先开 T1。反复阅读题面确定这是 sb 题后直接开打,3 分钟过了所有大样例。不过线性时间竟然只开到 \(2\times 10^5\),应该后面的题都不会卡常吧(flag *1)。

然后看 T2。先转化了一下题面,然后随便拿一棵生成树出来,发现每个连通块在树上也是连通块,然后不包含根的连通块的代表点一定是最上面的节点。这时候我猜了个性质,我当时认为连通块的划分一定是形如 \(u\) 的若干儿子子树和其他点,然后快速冲了一发,挂了第 2 个样例之后才发现假了。手玩了一波,又发现代表点在树上连成一颗子树,于是枚举连通块大小 \(B\) 进行树形 dp。

这里连通块划分有一个非常好的性质,如果 \(u\) 的儿子 \(v\) 子树能够被划分,那么 \(v\) 的子树大小 \(\geq B\),如果把 \(v\) 子树归 \(u\) 那么 \(u\) 连通块一定 \(>B\),就不合法了。除了一种特例,就是当时 \(u\) 连通块只有一个点,那么 \(B+1\)\(k=1\) 时也合法。

于是可以 \(\mathcal O(n)\) 进行 dp,配合外面枚举连通块大小是 \(\mathcal O(n^2)\) 的,已经有 65 分。之后又想了一会,感觉时间不多就去看 T3 了。其实这里枚举 \(B\) 只用枚举根号个,如果我细心一点就能过了 T2。

11 点多的时候看 T3,先思考暴力分如何拿。对于 \(\mathcal O(nm\log n)\),直接上线段树合并,如果子树内满人了就踢掉最小的,再加进去。

不过这个每个人匹配子树里的一个节点让我想到了 Hall 定理,因为直接贪心分配人员感觉比较困难,所以可以转化为判定性问题。现在题目变成了需要选一些人,对每个节点要满足子树内选的人数小于等于子树内节点数,求选出的人的最大权值和。

而选一个人只会对这个节点到根的路径做贡献,所以以任意顺序枚举人,能加就加,否则看看加进去之后最深的不满足条件的节点是什么,在它子树里选一个最小的踢掉。感觉很对。

这样就会了性质 A,类似的可以做性质 B,拼拼凑凑有 70 分。不过时间不多了,写完 A 性质就 12:45 了,只好放弃 B。

最后时间上 NOI Linux 检查,然后反复检查文操,就结束了。

估分:100+65+62=227。


出来发现人均 200+,wlx 过掉了 T2,然后我才发现只用枚举根号个。我又给 wcj 讲了 T3 做法,发现删除直接用线段树分治就做完了,但是是 \(\mathcal O(n\log^3n)\) 的,不知道能不能过。感觉自己还是不擅长 DS。

听说 cly AK 了,我好像考的不算太差,也许是昨天扫雷攒 rp 的缘故。但还是膜拜 wlx 262。

现在才发现 noip 考好并没有什么用,Day1 一下就把我拉下去了。我要是被 T2 剩下 35 分区分省队就乐了/hanx

下午没睡觉,打了一会块后继续复习。晚上也没能腐,今天没考数学和字符串,抓紧时间把 cmd 的相关知识过了一遍(flag *2)。GDOI2023 RP++!!!

Day 2

昨晚也睡得挺好,但是没那么精神了,有种 Day1 把 rp 用光的感觉。

拿了些食物和水就进了考场,看 T1 题目有一种出原题的感觉,可惜不是。T1 看起来像是博弈题,瞎推了一会双方策略后猛然发现 \(1 \leq n,m \leq 10\)。那岂不是可以记搜?

然后我也没想那么多,猜测搜到环就是 Tie,然后直接莽记搜。实际上因为有六维状态所以非常难写,一个半小时才写完。

接着开始调样例,调到最后一个样例发现不对劲,好像搜到环就平手是错的,应该建图之后跑拓扑序才对。这时因为前面调了一段时间的样例已经 10:30 了,很慌,于是加紧时间全部删了重打,可能因为太急了打了一些很蠢的东西,不过还是 11:00 打完了。

跑极限数据发现被卡大常,原因是我要按照 dis 从小到大转移,所以用了个优先队列。仔细思考发现直接上桶就能少一个 \(\log\),改了之后就快了一点,但是手造极限数据开 O2 还是要跑 1.5s。

这期间看了看 T2 T3 题面,T2 好像还是博弈,T3 看不太懂。介于时间关系,我只能先开 T2 暴力。\(n,m \leq 20\) 和特殊性质 A,B 都是送的,于是先拿了 40 pts。接着所有数互不相同很容易联想到连边,如果有解那就一定是若干棵树和基环树。基环树是好做的,树的话就是选一个根之后所有边选下面那个点,可以转化成每条边要么给子树贡献,要么给子树外面贡献。可以默认给外面贡献之后只有子树操作,也可以 \(\mathcal O(n^2)\) 树形背包。

迅速把 T3 乞丐分拿完后只剩 40 min,现在有两个选择:卡 T1 或者冲 T2。也不知道当时是怎么想的,我明知道没时间写 T2 了还是选择冲 T2,这属于策略失误。结果就是到 12:45 后被迫放弃,在 NOI Linux 下检查完后用最后 5 分钟卡 T1 的常。发现两个红棋可以位置对调,这样状态数减半,于是赶紧改了一下测样例,第二个样例过了,第一个样例最后一个数据错了。肯定没时间调了,眼调了一阵子没发现问题后还是选择用原来的代码。

所以我最后 40 min 啥都没干。寄!

估分:[0,100]+40+10=[50,150]。


大概是炸了,第一题没有 \(n,m\) 的部分分,所以出题人最多可以把我卡成 0 分。现在只能祈祷 CCF 的数据足够水,不会卡我常。

出来发现大家都会 T1,lh 好像 T2 拿了 72 分,Orz。又问了一圈 T1 有没有被卡常的,发现要么没测极限数据,要么就跑得很快。这么说好像只有我被卡了啊,我真是小丑。

吃完中午饭就回家了,现在只能自我安慰说 CCF 应该不会造全是 Tie 的空地图,你说是吧?(快进到 Tie 总司令)

Day ???

当天晚上在云斗学院测了一下,T1 波动极大,而且看起来不只有我被卡常了,心里平衡了一点。

第二天小图灵出成绩了(除了 D2T3),我 D2T1 冲过去了,不算 noip 大概排在全省前十,心情好了点。

可能跟 noip 一样我太悲观了,现在我的命运就赌在了 D2T1 上。希望最终所有人能够取得自己满意的成绩!


出成绩了,不知道为什么 D1T2 会挂(好像民间也挂了),我将考场上的代码改成枚举根号个就过了,应该不是树形 dp 的问题。

D2T1 还是被卡了,为什么要出这么强的数据啊/fn/fn/fn把我校两个人卡出队线了/fn/fn/fn。(呜呜呜我的 lh……)

继续努力吧。

posted @ 2023-04-02 16:35  AFewSuns  阅读(546)  评论(2编辑  收藏  举报