GDKOI-J 2023 游记

发布时间 2023-03-27 12:49:20作者: S·A·I

GDKOI-J 2023 游记

Day 0

$ 15:30 $ 翘了一节课去学校东门集合坐大巴。
不理解,到广州 1h+ 的路程走了 3h,中间还和别人的车刮上了?
路上,教练跟我们说晚上 \(7:00\) 之后是自由活动时间,\(9:30\) 要查房。但是能够随便出去玩还是很开心。
大家都不知道可以带手机,因此同级的就只有两个带了手机,一个玩阴游一个打使命,可惜我都不会玩,于是睁着眼睛睡了一路(3h车程真的困啊)

到了酒店已经 \(18:30\) (影星宾馆好贵,但确实能一眼看到几乎整个小蛮腰),我和 \(fjy\) (\(\color{red}Arctic\_Spider\)) 一个房间。教练说要带我们去报告,也是放了个行李就赶紧下了楼跟上大部队(心里已经开始筹划着今晚要怎么浪了)

本以为是从酒店附近的客村站坐地铁到鹭江站,没想到教练直接让我们徒步?还让我们不要坐地铁?
去到六中啥也没干,就到饭堂吃了个饭(真的好吃啊,饭量也足,就是费用肯定是贵的……)

然后就到了快乐的夜间时间(\(>7:30\))和几个同学一起坐地铁夜游广州(貌似只有我们初二的玩的这么开?)(第一次和同学一起出市玩,蛮激动的)。五个人一共两台手机,一台手机没电另一台剩下 \(20\)%,人生地不熟的真的绷不住啊(最终租了个充电宝解决了)……

前面浪费太多时间找路了,剩下一个小时直接导航去天河又一城撸串去了(还买了个鸭脖带回宾馆)。当我们坐地铁回到六中的时候已经接近 \(9:30\) 了,以为要晚归了就直接冲冲跑回去了(还跑歪了一公里?),结果发现回去 \(9:40\) 竟然没有查宿!!!

我在酒店洗了个澡,然而 \(fjy\) 并没有……

\(10:00\) 后感觉不会有人放假还查宿,于是直接到了 \(yzj\)\(wtj\) 的房间串宿去了。yzj从酒店借了个充电线然后一直在打使命,我和 \(fjy\)\(wtj\) 在看《夏洛特烦恼》,直接肝完了整一部就到了 \(0:00\) ,然后 yzj 又诱惑我们一起打使命,于是今天的觉就等到了第二天 \(1:00\) 才睡(惊了,在家都没这么晚)

手表能力有限,每个闹钟只响 \(10\) 秒钟,于是定了3个 \(6:55\) 的闹钟,希望能准时 \(7:00\) 起吧……


Day 1

从床上起来的第一眼看了看表发现已经 \(7:30\) 了?!直接迟到了半个小时,果然昨天睡太晚了完蛋!!\(wtj\)\(yzj\) 也现在刚起,果然玩游戏的都被制裁了。刷了个牙火速下楼吃早餐 \(8:05\),被教练(AJ)逮住谈了一会心,然后直接和昨晚一样冲刺跑去六中(教练把我们带偏了,我们居然忘了酒店附近就有一个地铁站!)。

真的寄,半路上 \(yzj\) 发现忘带身份证又跑回酒店了,希望他能赶上比赛……

去到六中 \(8:20\) ,不早不晚。早上是讲座环节,还碰见了 \(lyl\),拜谢!!

讲座前半部分讲线段树,例题都挺简单的,了解了一下权值线段树的概念后开始讲平衡树的 set map 实现,没咋听懂(wssb)(今天就只睡了6个小时,讲座的时候有点困啊)。

中午吃饭发现因为晚起没发到饭票,在饭堂转了好久终于等到提高的学长们打完给补上了。(今天的午餐也挺好吃的)

下午比赛,也是好困,疲倦流开题。

附上Day1原题pdf,有需要自行下载
附上Day2原题pdf,有需要自行下载

T1 题目大意:

给定 \(n,k (1\le n,k \le 2\cdot10^7)\),求 $$\sum\limits_{i=1}{n}\frac{i!}{ik}$$ 对 \(998244353\) 取模的结果

以为是拆式子线性题,手撸了 \(10\) 分钟发现好像不会,仔细想了想发现每个 \(i^k\) 的逆元如果用费马小定理求得话,也就是 \(f(i)=(i^{k+998244351})\bmod 998244353\) 好像是个完全积性函数,于是直接用线性筛暴力筛出逆元即可,此题就线性了。应该是正解吧,测了一下三个样例跑得挺快。

T2 题目大意:

有一个 \(n\cdot m (1\le n,m\le 1000)\) 的整点二位平面中,左上角墙角为 \((0,0)\) ,右下角墙角为 \((n+1,m+1)\)。其上有 \(k (0\le k\le n\cdot m)\) 个家具,每个家具具有一个整点坐标 \((x,y)\)
现有一个圆心始终位于整点,半径为 \(r (1\le r\le \min(\frac{n}{2},\frac{m}{2}))\) 的圆形机器人。它可以上下左右移动当且仅当移动后它的身体不会和家具或墙壁重合(允许相切)。
问初始时机器人位于点 \((sx,sy)\),它最多能到达平面上的多少个点。

一眼广搜 \(O(nmk)\),难点在于如何快速判断机器人移动后的身体是否不包含任何一个家具或墙壁。后来想到了 \(O(n^2m)\) 的做法,对每个家具和墙壁做半径为 \(r\) 的圆,圆内的点都打上标记,即为不可走的点。打标记用差分即可。
可惜前面打 \(O(nmk)\) 广搜的时候 sb 了调太久,想到正解后没时间实现了,只好交了个 \(30\) 分暴力。

T3 题目:

不会做,看着有点像DP,本人 DP 废物,弃了看T4。

T4 题目大意:

对于两个长度为 \(n\) 的排列 \(P=\{p_1,p_2,\cdots,p_n\},Q=\{q_1,q_2,\cdots,q_n\}\),定义 $$P\times Q={q_{p_1},q_{p_2},\cdots,q_{p_n}}$$ 排列 \(X^k\) 即为 \(k\)\(X\) 的乘积。
现给定 \(n(1\le n\le 3000),k(1\le k\le 10^6)\),以及一个长度为 \(n\) 的排列 \(Y\) ,求满足方程 \(X^k=Y\) 的排列 \(X\) 的个数,对 \(998244353\) 取模。

正解当然不会啦,写个 \(30\) 分的暴力好了。显然这个排列乘法就是常说的置换吗,置换满足结合律,因此 \(X^k\) 可以用快速幂优化,然后对于 \(X\) 的枚举直接枚举全排列好了,时间 \(O(n!\cdot \log(k))\)

估分大约 \(100+30+0+30=160\) 吧(T3怎么大家都会打DP暴力啊拜谢,但是貌似 T1 只有我写的是正解?)

今天六中的晚餐变难吃了。

谁管教练啊,晚上当然继续出去浪,这次带上了巨佬 \(ztc\)\(lxz\)。去了北京路。昨天逛太久脚好酸,这次的街是真的没走过,没有啥目的地,乱逛了 \(1\) 个小时毫无目的,最后由 \(lxz\) 提议找家奶茶店买杯饮料。
路上貌似遇见一个射牛小哥,抓着我们唯一一台手机一顿操作说是刷单,然后转了 \(ztc\) \(5\) 元钱表示感谢(有种被电信诈骗的感觉,那小哥说大学实习专业是计算机科学,手机不会被种病毒了吧),挺奇怪的一次经历。

买了饮料后已经 \(9:30\) ,但是应为没有查宿我们丝毫不慌,回地铁站的路上买了好多 \(10\)\(30\) 串的烤串大家一起爽(实际上我们貌似实现了共产,地铁钱和买串的钱都是大家东拼西凑出来的,既不是AA也不是一人买单)。

回到酒店了,洗了个澡已经 \(10:20\) 了,本想着今天早点睡的。但是 \(yzj\) 他们的宿舍太热闹了于是又去串宿看电影打阴游了。玩的太尽兴时间不知不觉又到了 \(0:00\),想着都这么晚了不如摆烂继续熬,于是我们在凌晨点了个麦当劳的外卖到宾馆 ,每人出 \(20\),看起来挺多但是 \(10\) 分钟就吃完了。(但还是很满足,毕竟第一次凌晨和盆友一起吃外卖)
\(1:00\) 的时候是真的不能再腐了,必须回房睡觉了,希望明天的闹钟能叫醒我。

因为不放心我还叫了个 7:00 酒店电话叫醒服务


Day 2

非常奇怪,我今天居然 \(6:40\) 自然醒了?根本不怕迟到了好吧。到了七点刷完牙去叫醒昨晚一起嗨的同学 (服了 \(yzj\) 居然裸睡)

早上吃了个肠粉当早餐,收拾好东西退了房,就不慌不忙的跟着大部队去了六中 (\(yzj\) 这次好像忘带准考证了?!又跑回酒店了一趟)

早上的讲座是试题分析,T1,T2的做法都如我所想,T3全场就一人切拜谢,貌似是转为二维偏序做。T4没听懂,但是听 \(lxz\) 说有一道类似(弱化版)的题是紫的(lxz:这玩意不应该是黄的),\jk。

然后是中大的学长们过来宣传他们学校(真的说的我都心动了,可惜我能力不行肯定考不上),然后介绍了一些大学计算机领域的内容,告诉了我们 OI 的学习对于大学计算机的帮助,以及告诉了我们乱搞精神的重要

接着公布了昨天考试各题的得分情况:

  • T1 平均分:29.7,最高分:100。T1 貌似得分率很低啊,平均分甚至低于暴力分?
  • T2 平均分:50+,最高分:100 。好家伙 T2 才是签到题是吧,我却只交了个暴力,我是什么废物啊。
  • T3 平均分:5+,最高分:100。
  • T4 平均分:5+,最高分:30。果然能场切 T4 的巨佬不会待在普及组,大家打的都是暴力吧。

然后是紧张刺激的滚榜!!!

WTF!!!我炸掉了,\(60+70+0+20=150\) !
离谱,我 T1 好像没开 \(long long\) 裂开成了暴力分,T2 出题人脚造数据混到了 \(70\) 但是周围都人均 \(80+\) 啊 ,T4被卡我是真的不理解啊。服了,本来挺有信心的你给我玩这出?。
T1 没开 ll,金变银好吧。

中午和几个同学出校吃午饭,毕竟昨天晚上六中的饭难吃的令人难以想象。我们又去了天河又一城,AA吃了个三两粉逛了会街,买了包童年回忆火影卡。

因为上午的成绩下午比赛心态有点崩,硬着头皮上吧,也是疲倦流开题。

T1 题目大意:

维护一个字符串集合 \(S\)(相同算一个) ,有 \(n(1\le n\le 10^5)\) 个插入操作,每次插入操作包含一个字符串和一个有效时间区间(区间长度为定值 \(1\le k\le 1440\)),需要求出所有时间内,字符串集合 \(S\) 大小的最大值。

签到题吧,模拟 \(+\) 哈希。类似桶排,将字符串有效区间这个概念理解为插入和删除两种操作的并,用一个 vector 数组 \(a\) 记录操作,\(a_i\) 存储着第 \(i\) 秒时的会发生的所有插入和删除操作,然后暴力便利每个时间节点执行对应操作即可。集合可用 unordered_map 模拟实现,但是我害怕被卡我手写哈希表。

T2 题目大意:

\(1\le n\le 10^9,0\le c\le 10^9\)

数据范围这么大,感觉结论题,考场上推了近一个小时没推出算法,弃了。

T3 题目大意:

时间不太够了,应该是树形DP,不想推了,打个特殊性质走了。

T4 题目大意:


牛马题目,不看了爬。

这把寄爆了,感觉难度完爆 Day1,估分 \(100+0+30+0=130\)。果然心态很重要啊,如果Day2能稳一点,T3 特殊性质应该能拿到50,T4暴力也能打上的吧。

GDKOI 结束了,潦草的吃了一下晚饭(外卖,味道真的一般)就做大巴离开了六中。车上一堆人玩 UNO 和阴游,但是这两天睡眠时间不太够我要困死了,直接在车上睡着了。


Day 6

查了一下 Day2的分, \(60+0+10+0=70\) 。fuk,也是寄爆了,T1手写哈希挂了服了,同学告诉我GDKOI 的数据强度卡不了 unordered_map ,晕,T3 特殊性质没想明白,有一部分打假了。

Day1+Day2 \(60+70+0+20+60+0+10+0=220\),我是什么废物啊……

希望吸取这次的教训,明年继续努力吧(还得把提高代码能力练一下)。