可达 2025 暑期集训游记
Day 0
报到。
晚上 10:20 左右老师来把电子产品收了,直接睡了。
Day 1
早上好早就起了,下去餐厅等了一会才开饭,感觉没去年好吃。吃完饭参加开营仪式。
上午讲了字典树,写题写了好久,没饭吃了()梅菜扣肉只剩梅菜了,但是太饿了,吃的贼香。
下午模拟赛。把我耳机带上连电脑边听歌边写题()
开 A,直接用队列暴力模拟秒掉了。
开 B,排个序就秒了。
开 C,打了个 \(O(n^2)\) 暴力 95pts,暂时想不出来正解,先弃掉。
D E 都是上午讲过的原题,秒了。
开 F,打了个 Trie 模板,瞎写了一个递归的匹配,调了一下,不出所料 TLE。给递归加了个进入条件,居然 AC 了()1h 直接拿下 AK-5。
回到 C,换了个暴力写法,还是 95。想到了上午讲的最大异或对,打了一下,在第一层循环加了个判断当前数和其他数的最大异或值是否 \(\ge k\),不是就不枚举这一个,居然给我冲过去了()1.5h AK()
lys 不知道从哪得到我 AK 的消息,在 vx 直接开始 orz。我给他看了 C 和 F 的题面,并告诉他我 C 是暴力冲过去的。他看了我的代码,然后出了一组 hack 数据给我代码卡掉了()
一看可达,发现数据加强然后重测了,\(600\to595\)。于是我开始想正解。想到可以存储字典树中子树里 \(i\) 的最大值,边存边查在线操作。打了一下,95 分(95 分 WA 到底错哪了()()())。调了老半天,由于加了一组数据变成了 96。最后也没有调出来,由于 WA 的点是小数据,就判了一下数据范围,小数据直接暴力,AC 了。
最终 600pts AK,rk1。后面订正给 C 正解调出来了。
完事去吃晚饭,又去晚了没了。感觉没去年的好吃了。吃完上来写了会游记和笔记,9 点回房间。
晚上拿到手机,我同学找我打游戏,更新了好久才更完,打了一半老师来收手机了()
Day 2
上午讲了单调栈和单调队列。
中午睡不着,早早下去教室被赶回去了()
两点开始模拟赛。
开 A,三连击,打了个枚举,交上去一直 95,调了十几分钟调破防了,弃掉。(95 分 WA 到底错哪了())
开 B,先打了个大暴力,全 T,丢掉。
开 C,看着有点眼熟,写了一下 50 分,懒得调了,丢掉。
D E 没看懂,先去调 A,但是还是调不出来。卡到了 1.5h 还是才 145 分(昨天这个时间已经 AK 了())。再次丢掉。
回到 B,换了一个暴力写法,拿到了 30 分。
又调了一会 A 还是没调出来,去看了一眼 D,写了个 \(O(abn^2)\) 的暴力,拿了 40 分。想了一会,发现可以用单调队列预处理每行每个区域的最大和最小值,然后 \(O(abn)\) 求解。稍微调了一会,居然过了。
又回去看 A,把 WA 那个点的数据套了出来,发现我比例没化简,改掉就秒了。
回去 B,发现有一些循环很多余,把复杂度优化到了 \(O(n^2)\),过了。
看 C,发现我数组开小了()。改掉居然 MLE 了,但是把一个数组改成 bool
就过了。
从切 D 到 400pts 总共才用 12min(12min 爆切 4 题())
开 E,没啥思路,打了 \(O(n^3)\) 和 \(O(n^2)\) 的暴力都只有 40 分,打到最后也没多一分。
最终 440pts,rk1。话说有四个并列 rk1 的。
晚上老师带我们在校园转了一圈,然后早早跑到餐厅抢饭。晚饭还挺好吃,吃完还有近 1h 才上课,于是我就开始打 MC,造好了一个刷沙机。
晚上写了写游记,订正了题目。话说我把老师 E 题 std 的手写队列改成了 std::deque
然后样例没过()
回房间拿到手机直接启动,打了一个小时游戏。
Day 3
早上起晚了,直接没吃饭去教室了()
上午讲了树状数组。
下午模拟赛。
开局开 A,水题,打了一下拿下首 WA()。发现字符串尾字符直接写的 s[s.size()]
,改掉就切了。
开 B,搜索题。打了一下,73 分。仔细读了一下题,发现前面看错了()。重新写了一下,切了。
开 C,打了个暴力 map
二维树状数组,90 分 TLE。加了个离散化就过了。
开 D,类似逆序对,直接树状数组一遍过。
开 E。先树状数组求出来了两个函数的值,然后尝试树状数组求答案,结果写假了,不得已打了个 \(O(n^2)\) 的暴力,交上去 35 分。然后就开始调树状数组求答案的方法,发现我没减一()改掉之后 70 分,加了个离散化,过了。1.5h AK,但是有人 AK 得比我快一点点,痛失首 AK()
过了一会 C 数据加强了,我被卡到了 55 分。想了一下,发现可以直接维护两个一维树状数组存横纵坐标,然后求答案时取最小值就行了。把离散化删掉重新写了一下,交上去 95 分 TLE,卡了一点常也没过,不得已把离散化加回去,然后重新 AK 了。第一次加的时候甚至映射数组开小了,RE 50 分()
最终 500pts AK,rk1。话说有三个 AK 的。
结束了就开始玩 MC,造了半个混凝土固化。
晚上下去吃饭,还不错。上来玩了一会 MC,然后上课的时候写了一下笔记。晚上回去依旧打游戏。
Day 4
早上 6 点多就醒了,睡了个回笼觉,8 点下去吃饭。
吃完饭上来玩了会 MC,把固化造完了。
上午讲了线段树。
中午吃饭,吃完饭上去睡不着,看了一中午 CCTV1()
下午模拟赛。
开局开 A,简单不带权最短路,打了个 bfs,调了一下秒了。
开 B。神秘题目,先打了个暴力,不出所料 30 分 TLE。然后看数据范围,尝试打 \(O(1)\) 做法,搞到了 1.5h 一直 WA 60 分,破防弃掉了。
开 C,区间异或和求区间和。想不到区间异或怎么修改,先打了个一个个单点修改的暴力,60 分。想了想,发现可以存二进制位,线段树维护区间里每个二进制位 \(1\) 的个数。打了一下,切了。
开 D。很诡异的题目,看懂了,但是不知道怎么打暴力。本来想输出 \(0\) 骗分(可以拿 20),但是这个操作给了 E 题(并没有拿到分),最后这题也是爆零。
开 E。写了个 ST 表打暴力,30 分,弃了。
回去调 B。中途想到了二分答案,但是没有去打,一直死磕我的 \(O(1)\) 乱搞做法,到结束一直 60,破防了。
最终 290pts,rk11,寄爆了()
出来老师说 B 正解是二分,直接原地破防。随手打了一下交一发过了()
晚上吃完饭写了写游记,想了个神秘 ACM 队名:ACCEPTED 3,2,1
(↑~~~)
调比赛 E 题的二分没调出来,迫不得已把老师的 std copy 上去了()
晚上爽玩 1h Phigros,然后 11 点不到就睡了。
Day 5
早上 7:30 被室友吵醒了,然后直接下去吃饭。吃完饭 8 点不到就上去教室了,发现门没锁,直接进去启动。
上午讲了并查集和最小生成树的 Kruskal。
中午吃完饭回房间发现电视被调到了酒店宣传频道,现在连 CCTV1 都看不了了()
睡了一会起来下去教室打 ACM 团队赛。
比赛开始先开 A。写了一堆 if
,8min 切了。
开 B。打个暴力枚举,但是没开 long long
吃了一发罚时。12min +1 切了。
开 C。直接模拟,15 min 秒了。
开 D。一个队友说他做过,于是他打了个双指针,但是样例一直过不了。另一个神人队友一直在说要打,也没思路,还抢我鼠标,贼烦。调了近 1h 还是没过样例,破防弃掉了。
开 E。没思路,弃了。
开 F。暂时没思路,弃了。
开 G。暂时没思路,弃了。
开 H。先打了个线段树,但是没打出来,弃了。
回去每道题游走,最终定位在 F。刚开始写的是取 \(n-1\) 条权值最小的边,不知道咋回事写着写着就写成了最小生成树。忘记数据范围 \(n\le2000\) 了求距离还打了个 LCA。调了半天拿下 -4,破防弃掉了。
队友说 G 可以用线段树,于是我就开始打。打了一会老师突然过来跟我说我写的 F 是对的,数据有问题。过了一会直接拿下 F 1:39 首 A,全场唯一一个代表切 F 的紫气球()
G 线段树打了一会打完了,样例也过了,但是交了一发 WA。然后就开始漫长的 debug。de 了 1+h,硬吃 8 发罚时,到结束都没 de 出来,拿下一个 -8()
最终 2:36 4 题拿下 rk3(这次一共 9 组)。出来让老师帮我 debug G 题,发现我线段树 pushdown 完没清零 tag,破防了()
晚上订了题目,回房间打了一会游戏,收完手机洗个澡就睡了。
Day 5.5
休息日。
早上快 9 点了起来下去吃饭,吃完饭回房间整理内务。吃饭的时候碰到老师,他给了我一个数独,说没事干的时候可以做。我搞完卫生开始做数独,做了快 10 分钟老师来发手机,我想着做完一个再玩手机,但是有点难,总共做了 15 分钟做破防了,直接开始玩手机。爽玩 Phigros 直到下午 3 点老师来收手机。期间还点了个外卖。
下午去玩了狼人杀,连续被发到两把丘比特,然后都赢了()玩完继续做数独,直接不吃饭死磕,做出来一个,剩下的做破防了到时候求助 dfs()。有一个题甚至一个宫里有两个 4,太神秘了()
晚上 7 点拿到手机直接启动,爽玩 3h Phigros。晚上早早睡了。
Day 6
早上 8 点起来下去吃饭,吃完饭上来发现还没开门,酒店工作人员刷脸刷半天开不开,等了好久才开。进去用 dfs 解出了昨天的一个数独。
上午讲了 LCA、ST 表、树上差分。中午吃完饭回教室写题,写完开始写游记和笔记。
下午模拟赛是 OI 赛制。
开局开 A,纯签到,打了一下样例过了,交了一下就丢了。
开 B,有点看不懂,先弃掉。
开 C,很水的题,甚至都不用求 LCA,打了一下交完就丢了。
看了看题目列表发现 E 题目名很眼熟,于是开 E,发现这不是天天爱跑步吗()。打了一下去年的 AC 代码(不过当时是数据史诗弱化版),想不出正解先交了就丢了。
开 D,写了个 01 Trie,样例过了,但是显然会 T。懒得管了交一发先丢掉。
回去 B,对着罚坐了半天没想出来,先打了个预估 40 分的暴力,然后开始乱搞,搞了好久样例一直没过,继续罚坐。
坐到 16:30 老师把赛制改成了 IOI 让我们看看分,发现我 D 挂爆零了,E 挂了 25。继续对着 B 罚坐,突然听到旁边人说什么 Prim Kruskal 啥的,再看看题目突然就会了,就是个最小生成树。打了一下交一发 90 分 TLE,再交一发就过了,可达神秘土豆服务器()
回到 D,正解实在想不出来,先打了 \(O(n^3)\) 和 \(O(n^2)\) 的暴力,预估 40。继续罚坐,坐到结束也没想出来咋打。
最终 365pts,rk2。本来 rk3 的但是两个并列 rk1 的有个人 B 挂爆零了()
Day 7
早上起来吃完饭上去玩了会原神()
上午讲了最短路。
下午模拟赛还是 OI 赛制。
开局开 A。签到,但是写了十几分钟才写完。
开 B。签到,写了个 dfs 秒了。
然后对着 CDE 罚坐。先写下 D,一眼拓扑排序,瞎写了一个假做法,不管了先交一下。
看 E,先把暴力和特殊性质分拿了,然后不可以总司令()
回到 C。先不可以总司令骗分,然后开始想正解。突然想到可以二分答案,然后就会了。
回到 D。打了个暴力 dfs 标记,加了点剪枝,大样例过了,先交。
回到 E。大数据打了个神秘乱搞,大样例答案输出的 \(-1\),大样例过了,先交。感觉 AK 了,然后开始刷 vx。
结束了一看,485pts,rk1。D 挂了 90,E 挂了 95,都是做法假了()
老师跟我说我 E 刚开始过了,他交到 CF 上的原题发现我 WA 了一个点,然后他把 WA 的那个点拷下来加进去给我卡到了 95,但是这个数据很小,所以别人打暴力的就多了 5 分()
晚上吃完饭上来看别人都在玩 MC 我也玩,把刷沙机收集造好了。
回房间去隔壁找音游人面基,爽玩 0.5h Phigros。
Day 8
上午讲了 DP。
下午模拟赛。
A B 都是签到直接秒了,但是都是二杀,不嘻嘻。
开 C。看着有点眼熟,去年做过类似的。写完调了一会过了,拿下首杀。
开 D。稍微想了一会想出来了一点性质,然后打了个暴力枚举 + dfs,然后交一发 40 分,暂时优化不了了先弃了。
开 E。打了个暴力 dfs,10 分。想了想怎么 dp,没想出来,破防弃了。
D 直到结束都没想出来怎么优化,破防了。
最终 350pts,rk3。
话说今天立秋,但是没喝奶茶()
Day 9
早饭有个炸鸡米花,挺好吃。
上午讲了状压 DP,感觉听懂了()
下午模拟赛。
先切 A B 签到。
C D E 都很神秘,看不懂,于是打了个 D 的暴力,交上去发现没数据,难绷。
打了个 E 的暴力,10 分,弃了。
把 D 暴力交上去发现 A 了,难绷。后来改数据重测了。
开 C。打了个特殊性质,10 分。打了个暴力,10+10=20 分。然后思考正解。思考到结束没想出来,破防了。
最终 250pts rk6,坠了。
Day 10
咕了两个月终于想起来补了()
上午讲了树形 DP。上一半 lys 偷偷溜进教室偷听,我直接严肃击杀()
下午模拟赛全是真题。
开 A,格雷码,调了 1h 切。
开 B,不会。
开 C,不会。
开 D,去年 S T3,打了和当时一样的暴力,20pts,丢了。
死磕 B,拿到 15pts,摆了。
打完比赛和班里音游人还有 lys 打上 Phigros 了()
晚上吃完饭结营典礼,领了个蓝牙耳机,上去唱了《山海》。典礼结束后 lys 严肃击杀了小武老师()
后面没了。