游记 GDOI2023(联合省选)

游记 GDOI2023 联合省选

正在写。

GD-142 广州大学附属中学

Day 0

在 SS 机房复习板子,重新拾起卷积和 SAM,我猜省选会考。依次重新打了一次 tarjan、树剖、dijkstra、exgcd、(ex)crt、fhqtreap、acam、sam、ntt。

下午两点了,高中部的同学要去试机了!祝他们好运。

现在是 2023 年,我将他们的名字抄写在这里,希望明天或者以后这些人当中能有很多个省队:

  • 高二:xzzduang(xzd),cp152(cht),chx
  • 高一:qzm,alphayangyang,lzj
  • 初三:huangjianheng,chenjunlin,zhangtx,syb,以及 HY 学校 pyl,shy,Lucky,hbs,dsy
  • 初二:mekoszc,psh,guanzheyun,lq(lq 没有提高一等不知道怎么去的)还有我
  • 初一:kly,wzy

看到没有,这就是 SSOI,提前祝贺 SSOI 旗开得胜!!!

Day 1

昨晚因为看了很久板子,看到 12 点多,导致今天早上起来很困!这给我们的教训是:考前一天早点睡觉。

然后在车上狂背 SAM 和 _vimrc 的配置(这次省选也是我第一次在赛场上用 vim,感觉很好用,脱离了鼠标),学校的车是面包车,安全带没有,再加上道路不算太平整,好像坐过山车一样,很晃,手机屏幕转来转去转晕了。不幸的事情发生了:进入考场后,我的眼睛好像有针刺一样,疼痛难忍,紧闭双眼也无济于事。所以我开始冰敷双眼 + 做眼保健操,一直做到宣读考场纪律才稍微好了点。

08:30

提前三分钟下发密码是 GDOI 传统吗?

(打开 C:\Program Files (x86))“哇装了好多东西,甚至有翼课网”

(Windows+R)“哇有 cmd 能用” “你这个 g++ 怎么显示找不到”

这台电脑像新的一样。用了 30 分钟进行配置并且看完了题目。

09:13

T1 看上去非常能做,首先固定方向,然后将一段轨道拆成很多条小轨道,然后 bfs,然后取出所有终点就是了。很快就写了个暴力出来,过了 \(n=2000\) 的样例。

令我震惊的是 gdb 不能用(无法识别文件类型),想起来上次在石门中学的时候 gdb 也不能用,显示数组过大无法展现。感叹版本太低了,希望组委会好自为之话说是不是 NOI Linux 下面有能用的,笑死了没用过 Linux

gdb 不能用,那就只能用祖传 debug 调试了。

09:48

我用了并查集实现这个过程:首先固定一个方向,然后将一条轨道拆分成好多好多轨道,最后查询一下连通性。设 \(fa_{i}\) 表示 \(i\) 右边第一个还没有铺轨道的地方,\(find\) 过去之后给它加一。均摊线性。

你可以发现我写这个东西用了 30 分钟,因为栈溢出一直 RE。曾尝试过开栈,但是 powershell 说我有多余的逗号???

场外提醒:请使用 "-Wl,--stack=123456789" 注意双引号

最终用了 dev-c++ 编译程序。

10:00

用了 90 min 终于敲完并上拍子。因为 T2 的题目还没看懂,所以先看 T3。

10:30

好像有二十分:从上往下 dfs,每个点维护一个 multiset,到某个点时将最大值留下,其余的下放到子树最小值那里去。手动造了几组数据,确信了。看上去不能撤销,让我想想能不能加入。

由于要写一个线段树,所以比较烦,一直写到

11:14

。(由此可见我写题速度有多慢)

测了样例,第一个过了,然后第二个测不了,第三个不测,第四个过了,第五个答案比 .ans 要小几十万,第六个答案也少了几十万。

What?

11:58

调不出来。把线段树初始值改成 \(-1\) 并特判之也没有用。弃了,去看 T2。

首先试图枚举边集。发现复杂度升天,我也不想交个升天代码。

那其实好像枚举边集是没有用的,应该枚举点集,边集就是它们之间连的所有点。所以有一个 \(O(2^n)\) 的做法。

12:20

写了个 dfs 发现好难写,换成并查集。于是有 25 分了。

发现如果是树的话,那么关键点在树上应该是连通的才对,(场外提示:以下错误思路):

  • 要么只有两个关键点
  • 要么有一堆关键点,且不是关键点的应该是叶子。

所以统计一下就可以了。造了一组数据好像过了,来不及拍了。

13:00

我们收到通知,请各位选手检查暴戾注释并删除,否则全国通报

笑死了。于是删去了代码中所有“死”。

结束了。

\(100+48+0=148\)

好像很多人都过了 T1。噢天啊是区间并这一经典问题!

黄队说 T3 就是把其他值放到子树最小值中,而且他过大样例了。

dsy 说 T3 后面可以线段树分治。

  • T2 树的做法不是那样做的!!!是枚举长度之后切子树,怎么办崩溃了。
  • T3 大家都是从下到上放值,我反了,怎么办崩溃了。

我好菜啊。得分骤降。没了。

Day 2

在车上睡觉。

8:40

我配置完了。先开 T1。

T1 好像是巨型分类讨论题……吗?有障碍物怎么分讨啊?

首先特判掉不能动的……然后可能要跑一边奇偶最短路。

一个初步的想法是,因为有 \(2\times 10^6\) 个状态,然后有一些必胜态,一些必败态,边数是 \((4+4+3)\times 10^6\),然后是二分图。要求最优策略下每个点是必胜还是必败还是领带平局。

想起了 abc261h。但好像不太一样,首先复杂度,其次就是说它没有明确的终止状态,形式化博弈再想一下……

那个题目怎么做来着?它首先是一个拓扑,从出度为 \(0\) 的……等等哪有出度为 \(0\) 的点,这不是一堆环环环吗。呃感觉不是这样做的。(场外痛哭中)

呃呃呃先做一下特殊性质。。。第一个是 *,第二个好像这个卒会被逼到角落?第三个怎么判断是卒子反杀还是红将薄纱啊?第四个是让我爆搜?太抽象了不太会。

想了一个做法:就是搜,把红将和黑卒分开,枚举步数,把输赢分成以下三类:

  • 黑卒找到一条路径,冲到第一行,中间红将过不来。
  • 黑卒反杀了红将。
  • 红将围困黑卒。

然后搜红将,把被杀的黑卒干掉,搜黑卒,看看黑卒能不能杀掉红将或者赢。

过不去样例一。

想了一下,你这个东西是错的,因为黑卒的行动是和红将绑在一块的。

所以应该把三个棋子绑一块搜。

然后怎么判断答案呢?oh,不会了,我放弃了。

11:00

选择 T2。

首先可以搜索。

特殊性质 A:只用判断 Bob 有没有合法的方案。

如果连一个二分图,那么可以跑一个二分图最大匹配判断是不是完美匹配。
发现这样过不去更大的,还有两个特殊性质没有用过:

  • 左部点到右部点最多两条边。
  • 需要判断完美匹配(Hall 定理能做吗?哦,我不会啊)

换一种建图:首先将 \(|T_i|=1\) 的点去掉,然后将一个集合的两种可选的数连一条边。
然后,每条边要选择左端点或右端点;每个点只能被选一次。
特殊性质 B 好像是这个。相当于 Bob 只有两种决策。
特殊性质 C 是固定死 Alice 的决策,那么可能可以跑二分图的网络流。

然后我突然发现不会处理 Alice 的决策了……所以打完爆搜就跑路。

12:30

刚才想了很久的假的 T2。所以 T3 直接 puts("1 0") 了。

但还是有点想法:判断完美数列可能需要先枚举下降的首位,然后枚举一下上升的用了哪些值。但是写不出来了。

13:00

赛季结束。

Day inf

这一次的话发挥不是很好,主要是 D1T3 的结论挂了,D2T1 接近正解但没继续。分数很低。

好久不见,下次再来!

posted @ 2023-04-02 15:32  caijianhong  阅读(447)  评论(0编辑  收藏  举报