联合省选 2022 游记

联合省选 2022 游记

标题是游记还是游寄就看若干天后了。

Day -21

今天突然发现我 \(\rm NOIp\) 爆炸到在 HA 都 \(\rm rk8\) 了,而鬼故事是,HA 只有 \(7\) 个省队名额。更恐怖的故事,疫情开始蔓延了,JLOI 据说寄了。

然后教练给我整了个消息,HA 决定无论如何都要举办省选。谢谢 HA 谢谢 HA 谢谢 HA 谢谢 HA 谢谢 HA 谢谢 HA 谢谢 HA 谢谢 HA。

不过可能需要提前 \(14\) 天去考场?

Day -20

今天上午上 zr 的课,杜老师的计算几何,还好,没有想的这么难。倒是同机房其他人的模拟赛据说锅很多还很难,还好我跑得快。下午还是 zr 的课,但中午没时间睡觉的弊端来了。中间几乎啥都没听懂,加上杜老师讲的内容比上午难了亿点点(我是不是该学点 \(\rm KDTree\) 啊qwq)所以就迷迷糊糊了好久。

省选不要考计算几何!!!!

Day -18

今天又是 zr 的课,lqs 哥哥的字符串。可以说非常友好,我居然没怎么困!而且跟上了课!还学会了 \(\rm PAM\)\(\rm Lyndon\) 分解!不过留下了一堆待写的题/kk

省选来点我能做出来的 \(\rm SAM\) 题!!!

Day -?

太久没写忘了还剩多少天了。

嗯,突然想到我还有个这个坑。不过教练已经实锤 CCF 在征集意见推迟省选了,所以 HA 这边也不敢确定。这样,我们目前的情况还是没有情况。

推迟了是不是又要多一周模拟赛,坏。

Day -??

寄,摆,润。

最近状态好差,啥式子都不会推,啥题都不会写。

就这状态考省选?

Day -9

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊只剩九天了。

我还啥也不会啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。

Day -4

麻了,昨天群友在讨论 NOIp/省选/NOI 挂分,退役的事,给我彻底整 emo 了,然后昨天失眠了,今天好困,水了点斜优板子就写不动了。

最近应该看不到我在谷交题,我去 Hydro 的谷域交(好贱草),希望这样能让我的 \(\rm 1k\) 通过是联合省选题!

还有 \(4\) 天,好快啊,外地学生已经来酒店隔离了,感觉我立了好多关于省选的 flag(什么 cos 啊,友链啊之类的),搞得省选如果寄了就没法面对一样。哎,以后不能再立这么多 flag 了,在这儿再立最后一个 flag 吧,如果省选真寄了,我就好好回去文化课,AFO 到期末。

不管怎么说,省选形势,是 rk8 冲前七,优势在我!

对了,我同学提醒我,如果不把模拟赛寄掉的事记录一下就不能攒 rp 了,所以在这儿记录一下:

  • \(\rm 2022.04.11\)\(\tt 20+30+10=60pts\)
  • \(\rm 2022.04.08\)\(\tt 3+5+10=18pts\)
  • \(\rm 2022.04.07\)\(\tt 30+10+10=50pts\)
  • \(\rm 2022.03.23\)\(\tt 0+60+20=80pts\),其中 \(\rm T1\)\(\tt CE\)

Day 0

上午,摆烂,摆到 10 点,出发去酒店。

人到酒店,开始摆烂,水群。

发现 HA 同学来面基,是 \(\rm \color{red}overflow\)。OF 来了送了我一个他自己画的水月和 quan 酱画的闪灵徽章。谢谢 OF 哥哥qwq。然后我的回礼,是学长送的 thu 便利贴。(好敷衍啊草)

下午,摆烂。

晚上,摆烂。睡觉。

Day 1

从这之后的内容,重写过一遍。因为文笔不太好,不知道怎么才能把东西写好,总觉得是流水账,大家凑合看吧qwq。

早上很早就起来了,大概 5:40?然后赖床到 6 点。 然后起来,有点紧张,就想着干点啥缓解一下紧张吧。打开电脑,敲了高消,行列式和 \(\rm kmp\) 的板子。敲完之后教练也打电话叫起床了,收拾一下之后直接去吃饭了。

吃饭时大概就是吹水,畅想今天考啥啊,预测一下排名之类的,是这两天最欢乐的时刻了。 吃完饭,互祝 rp++ 之后就出发去考场了。路上,我和同学还在吹水,导致被教练吐槽:“舌头累不累啊。”

到考场,根据模拟赛惯例,试机前要趴那睡觉,不过我那时候显然不可能睡着。然后我突然发现,我右边是 HA 的 \(\rm NOIp\) 第一,初三的神。慌啊,很慌啊。

\(8:30\) 考试开始。开题,\(\rm T1\) 的题面,怎么这么长?还有字符串啥的,难道是个毒瘤 \(\rm AC\) 自动机?看了看数据范围,¿这,这,真的需要算法吗?

\(8:32\) 看了看后面的题,一眼不可做,不过 \(\rm T2\)\(\rm dp\) 做法大概可以冲一下。

\(8:40\) 这段时间我一直在读 \(\rm T1\) 的题面,然后把细节往纸上写,越写越觉得不对劲。这东西,真的是暴力吧?是吧?是吧?

\(8:45\) 管他呢,继续盯着看也没啥结果,开写代码吧,反正这会键盘声已经起来了。

\(9:10\) 写完了,不出意外 运行不了。

\(9:20\) 调完了,但为啥第一行多了个换行。¿

\(9:25\) 哦,多读了个换行,用 getline 读掉就行了。这下三个样例全过了。

\(9:30\) 对着代码盯了一会儿,直觉告诉我这东西不可能是对的,理性告诉我复杂度就是对的。干脆造点蓟县数据吧!

\(9:40\) gen 写完了,一运行,草,跑了 \(\rm 30s\)。果然复杂度是错的吧。

\(9:41\) 草,gen 写错了,这个输出文件每行有 \(9\times 10^7\) 个字符,只跑 \(\rm 30s\) 挺好的了。

\(9:45\) 微调了一下 gen,果然跑得飞快。那不管了,开 \(\rm T2\) 去了。

\(9:50\) 这个 \(\rm T2\),暴力分真的好少啊,只有 \(\tt 10pts\) 诶。

\(10:00\) 啊啊,\(\rm dp\) 真不会啊,我能想到的做法都过不去任何除了暴力的点。那先把暴力打了吧。

\(10:20\) 被判重恶心了一会儿,还是写完了。这时候我又开始担心 \(\rm T1\) 了,跑回去看看。

\(10:21\) 话说 std::map 是基于红黑树,需要比较两个 std::string,会不会很慢来着。看我把它变成哈希!

\(10:50\) 完工,来让我试试。¿为啥比之前,还要慢?嘶,估计是哈希需要的工作量有点大,没事应该增长慢吧。

\(10:51\) 下一步,先把 \(\rm T3\) 暴力打了吧,我看看啊,就只有 \(\tt 4pts\)??算了,蚊子腿也是肉。

\(11:00\) 很快打完了,出去洗把脸回来想 \(\rm T2\) 吧。

\(11:05\) 啊,枚举路径,然后枚举最小值之后,是不是路径上所有的点就有确定的范围,然后再和他们的范围求交,好像可以,复杂度是 \(\mathcal{O}(n^3K)\),似乎也能跑过 \(\tt 20pts\)

\(11:20\) 写完了,但第二个数一直不对。

\(11:30\) 发现第二个数我根本不会算,算了,\(\tt 3pts\) 不要了,我再看看 \(\rm T3\) 去。

\(11:40\) \(\rm A,B,C\) 三个性质,感觉可以根据这些性质的存在与否跑费用流算?

\(11:45\) 跑啥啊,有环,还不少。但这个 \(\rm B\),是不是性质不错?

\(11:50\) 确实不错,既然存在所有都满足条件的情况,那那种情况一定是最多的,直接数一下个数即可拿到 \(\tt 20pts\)。上个哈希即可做到正确的时间复杂度。

\(12:10\) 写完了,试了几组没啥问题。

\(12:20\) 对着题目翻了半天,发现实在没啥得分点了,于是,不出意外地 我又开始看 \(\rm T1\) 了。

\(12:30\) 真的,感性理解了一下,虽然我现在也不懂为啥,感觉暴力比哈希的,确实要快。那那,就再换回来吧。(还好我有备份)

\(12:40\) 写了个拍子,把哈希的和暴力的拍上了。现在想想有这功夫不如去造点奇怪的数据测一下,这可是大模拟啊!

\(12:50\) 无所事事了 \(\rm 10min\),准备交题了。

\(13:00\) 交完了,又紧张了几分钟。已经结束咧!

考完了,考完了,考完了。我考完脑子里只有一个想法:\(\rm T1\) 千万不能挂。因为我敢保证,HA 没人会 \(\rm T2\)\(\rm T3\),更别说明天的题了。也就是说,这道题的 \(\tt 100pts\),在很大程度上决定了本场考试的成败。

考完之后,我们交流了一下,果然,大家 \(\rm T1\) 用的都是红黑树,或者说,std::map。那我对时间复杂度就没什么担心的了。但是,单纯的我当时还没有到酒店,没看 QQ,不知道一堆奇奇怪怪的 hack 正在准备折磨我的心灵。

到达学生酒店!诶,这不是 QQ 群友讨论 \(\rm T1\) 吗?还是来看看楼下的午饭吧家人们。

午饭,按理来说是放松的时间,但当身边一个人都没有时,我的脑子会胡思乱想,身体会坐立不安,结果就是,吃不下饭。于是我找教练紧急把我队友也拉下来吃饭了。

有了队友一起聊天,午饭很快就过去了。但到了房间之后,QQ 这东西,看也不是,不看也不是。我决定先去睡觉。睡觉。睡觉?\(\rm 20min\) 后,我宣告放弃,还是看 QQ 更不折磨一点——至少有人陪着。

打开 QQ 群,不出所料,大部分人都在聊 \(\rm T1\),小部分人在聊 \(\rm T2\) 的插值做法,然而我连 dp 都不会谈何插值。 仔细一翻,嘶,怎么有这么多大佬都挂在 \(\rm T1\) 了,显然我没他们强,他们都挂了,我,不是更可能挂了吗??

注意,从这里往下,描述考试结束后的心理,会出现一定的负面情绪,如果您现在情绪低落,可以选择放弃继续阅读或跳过。如果您是当事人,可以选择从此处放弃阅读。

谢邀,更睡不着了,那索性就串门去吧。正准备走,一个队友找过来了,他把他考场代码重新写了一遍,但在洛谷 ide 上输出的换行有问题,在本地试一点问题都没有。我们都怀疑是 windows 和 linux 系统的区别,但如果真是这样,这不就爆零了??而且我跟他写法几乎一样,这立马让我慌乱了起来。我们决定一起去问另一个队友。(为了方便叙述,找过来的队友简称 A,我们去找的简称 B,还有一个暂时未出场的简称 C)

敲门。开门。他正在打 lol,我们简单聊了一下,猜测是一样的。A 说洛谷上测出来只有 \(\tt 40pts\),而这 \(\tt 40pts\) 还是因为数据的问题。气氛陷入了一种微妙、僵硬的局面,A 抛出一个问题,我去群里问问群友。就这样,大概过了几分钟,突然,一声清脆而响亮的“国粹”传来:

我草!过了!我……

因为声音真的很大,我们都围过去看,映入眼帘的是洛谷上的 AC,然后看到的是 A 略显绝望的脸。我心里咯噔一下,这,这,这一定是发现了什么细节,但是致命的错误才会这样的。不等我开口,A 已经喊出来了:

我,我,我用 getline 读入 n!!

我和 B 都懵了一下,然后几乎同时意识到他说的是啥意思:

getline(tmp,cin); 
n=tmp[0]-'0';

我很难用语言再现当时的情景,惋惜、窒息、担心,交织在一起缠绕在我的心头,很难喘过来气。许久,A 才开口:“我文化课去了,您们加油!”

这时候,突然又出现一个意外,B 意识到他在读入 n 之后没有额外的 getline!在一开始的惊讶后,我意识到,我一开始也没有,但这样是过不了样例的,说明他大概有别的写法,但干了同样的事。在排除了 getchar 之后,他说他用了快读,可能是快读读掉了最后一个 '\n'。但问题又来了,windows 和 linux 一样吗?咨询了群友之后,linux 下的是单个 '\n',这才让人放下心来。或许是,气氛有些太过凝重了;或许是大家都需要独自整理下各自的心情;又或许是巧合——我们三个人不约而同的回到了自己的房间。虽然 B 本来就在自己的房间。

回到房间,我坐在床上发呆,不知道该干什么,脑子里满是对考试的担忧,对队友的担心,对自己的忧虑。突然,我看到电脑上一个朋友私信问我考号。我一开始没反应过来,就直接给他了,突然我意识到一个问题——他一定是因为有代码才这么问的!确认了这个信息后,我大叫了一声,穿着拖鞋就逃跑到了 B 的房间里。

B 这会也没啥事干,正好,我可以在他耳边折磨他。

啊啊我不想面对现实。啊啊啊我现在回去肯定就知道考多少了,不行,不行,让我在你这儿躲一会儿,实在不行我就睡这儿了。啊啊啊啊啊,为啥啊,我咋知道他是找我要代码的!

声音很大,隔音不好。于是 C 被吵过来了。我们三个就这么僵持了好一会儿,B 决定开始看 lpl,我决定入坑一下雀魂——因为实在没事干了,总得找点啥麻痹一下自己。不知道多久过去之后,该做核酸检测了,下楼。

遇到 OF 哥哥,他说他有代码,在纠结之后,为了今晚的睡眠质量,我还是要来了代码。然后,排长队做核酸。排队的时候,我们发现 A 明显比平常憔悴了许多,我不知道该如何安慰,我不知道是否应该安慰,我不知道,是否我也需要安慰。

总算熬过去之后,做完核酸上楼,代码也已经发到 QQ 上了。我还是呆在 B 的房间,我们俩盯着代码,谁都没有勇气先提交自己的代码,于是事情又僵持了起来。突然,敲门声打破了平衡,教练进来了!他问我俩考得咋样,知道 \(\rm T1\) 我们都很担心后,问了考号,和 \(\rm T1\) 能去哪测,之后就走了。

!!教练要测,那我们就,就,不得不先测了呗。于是我们就赶紧找到自己的代码,先交 B 的,再交我的。B 的代码,顺利收获了 \(\tt 100pts\)。轮到我时,稍微卡了一下,但结果,是 Accepted。

很幸运,真的很幸运,我考场没有注意任何奇怪的细节问题,但代码依然顺利通过了洛谷数据。幸运,这个词虚无缥缈,而又时不时能出来拉人一把,或者推人一下。说实话,我当时并没有想这么多,但现在总是忍不住去想:“为什么那个 \(\tt WA\) 的人不是我?如果是我,我会有什么反应?”听起来很矫情,我本来没打算写进游记里的。我会辜负这决定成败的一题吗?

但当时真的没想那么多,教练来了,我俩演了个戏就过去了,然后,就开始打雀魂。

很快啊,打了几把匹配被 B 嫌弃菜,然后我就找群友打三麻了。打到了 \(22:30\),困了,准备睡觉。就在准备睡觉的时候,我发现,我戴的塑形镜,莫名其妙丢了一只。嘶……,我身边可没有备用眼镜,附近也没卖这个的,这下完蛋了——明天会看不清东西的,而随之而来的是精神会比较萎靡,完全不在状态。在找了好久,确定找不到之后,已经 \(23:10\) 了,为了及时止损,我决定直接睡觉。

Day 2

起床!这次也醒的很早,但回笼觉却睡得有点久,最后被教练的电话叫醒了。迷迷糊糊起来后,看了看板子,甚至懒得再打一遍了。洗漱完之后就去找 B,等他也弄好之后,就拉上 A,C 一起去吃早饭了。

早饭上说了啥我忘了,总之,这次再去考场,一路上都安安静静的,我心里总有说不上来的失落。

进考场的过程跟昨天就差不多了。不同的是,我左边终于不再是 \(\rm NOIp\)\(\rm rk1\) 了。

\(8:30\) 考试开始。看了看题,不出所料,比昨天更不可做。

\(8:32\) \(\rm T1\) 好像在分解质因数后,很像以前做过的一道模拟赛题。

\(8:35\) 确实像,直接上高维前缀和即可拿到 \(\tt 40pts\)。(这里高维前缀和可以得到是该集合及其子集的集合数量,然后可以得到组成该集合及其子集的方案数,最后用子集容斥或者高维差分即可得到恰好组成集合的方案数。最后高维后缀和即可得到答案)

\(8:50\) 码完了。

\(9:00\) 过样例了。翻了翻后面的暴力,如果全打满,我也只有 \(\tt 40+12+12=64pts\),这还是不太稳啊,这要求我 \(\rm Day1\) 一份不挂,我才有希望。所以我想了一下,决定先把后面的暴力打了,然后再继续想 \(\rm T1\) 的高分做法。

\(9:30\) 尝试写了一下 \(\rm T2\) 的暴力,发现不太好写。但终归还是瞎写出来一个能过样例的东西,就这么放着吧。

\(9:45\) \(\rm T3\) 的暴力还是很好写的,枚举全排列就行了。

\(9:50\) 去洗了把脸,冷静了一下,准备想 \(\rm T1\)

\(9:55\) 发现对于 \(>\sqrt{s_i}\) 的质数和 \(\le\) 的分开处理似乎是个不错的思路。因为 \(\le \sqrt{s_i}\) 的数量级支持暴力高维前缀和做,而 \(>\sqrt{s_i}\) 的,可以考虑特殊处理。

\(10:20\) 胡了个算法,成功过掉了样例,当时觉得有 \(\tt 80pts\)。然后开始跟暴力拍。

\(10:30\) 非常遗憾,没拍上。发现这东西在 \(>\sqrt{s_i}\) 的质数超过 \(1\) 个时就会假掉。

\(11:00\) 又想了 \(\rm 30min\),还是一头雾水。但发现,因为 \(>\sqrt{s_i}\) 的质数,在一个数里面至多有一个,这给了我们非常好的性质,不用考虑容斥等乱七八糟的东西了。

\(11:20\) 嘶,我尝试把数按照是否整除题目中给出的 \(>\sqrt{s_i}\) 的质数来分组,因为你考虑,这相当于,大部分组要至少选一个,剩下一个组无所谓咋选。而每个组分开做都好做,合起来怎么办呢?

\(11:30\) 发现合起来的式子是这样的:

\[h_U=\sum_{S\operatorname{or}T=U}f_Sg_T \]

这不就是或卷积??而我刚好学过一点 \(\rm FWT\),知道怎么快速计算!好像,会这题了?

\(12:00\) 上手实现花了点功夫,但现在看看实现的真的很丑,常数真的很大,复杂度都实现错了。但当时我非常自信的认为我的实现没有问题,复杂度错是因为方法的瓶颈,但怎么着也能有 \(\tt 65\sim85pts\)

\(12:20\) 代码和暴力拍上了。因为要照顾暴力,所以拍的数据都比较小,这没能让我发现复杂度假掉的事情,而我因为有点激动,没有造极限数据试试,真的挺遗憾的。

\(12:40\) 大概检查了一下做法,改善了一下写法,把暴力,高维前缀和,\(\rm FWT\) 三种做法整到了一个程序里。

\(12:45\) 我看看我 \(30\) 以内的质数有没有写错哈:

\[2,3,5,7,11,13,17,23 \]

等等,别数了,\(19\) 呢??草,居然少写一个质数,幸好发现了。

\(12:55\) 无所事事地被折磨了十几分钟,准备交卷。能发现,\(\rm Day2\) 这段时间的键盘声明显比昨天的小。

\(13:00\) 已经结束咧!

出考场,和 B 对了一下思路,发现思路基本没有问题,而且他笃定全 HA 没人写得出来 \(\rm FWT\)。我当时就突然有些飘了,觉得这次省选我 win 在了 \(\rm D2T1\)

退房,吃饭,回家!

回家,发现小图灵也有 \(\rm D1T1\) 的数据,我尝试测了一下。??怎么怎么只有 \(\tt 70pts\) 了??我突然慌了,因为少这 \(\tt 30pts\) 会让我省选的容错率大幅下降。在反复看了几遍,试了好几组 hack 没发现错之后,我觉得是小图灵数据错了。

问 B 要到了 uoj 群里造小图灵数据的人的 QQ,想问问他到底是怎么构造数据的,结果发现 ta 只负责沟通。后来 B 又告诉我,uoj 群里说有两组数据出锅了,可能出现这样的非法数据:

#define <a><b>

其中 <b> 为空串。果然,判掉之后我就获得了 \(\tt 90pts\)。但最后一个点我百思不得其解,我就又问 ta 要来了数据。然后发现:

#define __ <b>
...
#define __ <b>

定义重了!也就是说,我在小图灵上挂的点全是错误数据,我悬了一下午的心放下来了。

晚上,小图灵按照他们已有的数据测了一下,我发现,我的 \(\rm D2T1\) 挂到了 \(\tt 20pts\)!!一下子少了 \(\tt 45pts\)!!而按照,这个成绩算,我在全省不算 \(\rm D1T3,D2T3\),是 \(\rm rk8\)。突然,当头一棒,进队的希望变得渺茫了。

一下,我找到了高维前缀和的错,\(s_i\le 30\) 不代表 \(p_i\le 30\)

但,我实在不知道 \(\rm FWT\) 哪错了,我问了三四个人,他们都给出了找不到错的回答。跟 AC 代码拍,也能拍上。

但是。

但是。

跑的很慢。

我突然发现自己常数写得巨大。

我突然发现优化一下似乎可以获得很高的分数。

我突然发现这个做法是正解。

懊悔,不甘。

Day 3

哎,昨天晚上其实没睡好,因为担心省选啊。上午摆烂。下午摆烂。

直到,下午五点,突然 QQ 私信来了个消息:

今天六点出成绩。

嗡!脑子突然乱了,出成绩?公示名单?还有 \(\rm 1h\) 就能知道结果了?我赶忙追问,在哪查啊?

[CCF 官网截图]

有数据?要不我赶在六点之前先把全省的测了?有道理,那我试试吧。

发现不会配置 spj,就把俩需要 spj 的题略过了。开始测。

突然意识到 loj 有全部的题的官方数据,我就跑去全测了:

\[\tt 100+17+14+35+0+12=178pts \]

不高不低。卡在尴尬的边缘。

?不对啊,为啥 \(\rm D1T3\) 只有 \(\tt 14pts\)??我的 \(\tt 10pts\) 呢?问了一圈,得出结论,哈希冲突了……

一路折磨,直到我发现小图灵帮忙测过全省,可以查排名了。

??

??

我为啥,是全省第一啊??

就这分??

??

晚上,我和我爸一起出门散心,说了很多,但对我印象最深的是一个词:

悲壮。

竞赛人是悲伤的,随时可能面对打击,面对失败,甚至面对退役,竞赛人甚至是悲哀的,国家政策,学校态度都对竞赛四处打压。但同时,竞赛人是强壮的,我们百折不挠,我们屡败屡战,我们不断向上,竞赛人是壮丽的,我们看到的风景,走过的路,都是只属于自己的,独一无二的,壮丽景色。

引用一下明日方舟令姐的话吧:即使可能折戟沉沙,壮志未酬,但仍然直抒胸臆,酣畅淋漓!

写在最后

结尾不知道该写什么。

首先对自己的文笔极有可能文不达意,对自己写下的一些稚嫩想法,对文章的质量比较低道歉。

然后是对自己经验的总结,大模拟以后再遇到要尽快判断出来,并用奇怪数据测一测。对于没把握的题,如果没大样例,记得造极限数据试一下!

最后是一些 flag,所有立过的 flag 近期都会在犇犇兑现。

祝各位生活顺利,学业有成,不管是在 OI 还是在 whk 都取得自己满意的成绩!

posted @ 2022-03-16 21:48  zhiyangfan  阅读(675)  评论(1编辑  收藏  举报