2024-2025 XCPC 比赛游记

注:这篇文章倒闭了。

CCPCO

看了一下比赛要求,怎么这么多事儿呢。

决定用 csy 的电脑打比赛。然而 csy 的新电脑连 vscode 都没有,只有 bug 奇多的 Dev 5.7,烂中烂。试机赛最后 qlr 写完 C 没保存就编译运行,然后 Dev 爆了代码没了,遗憾离场。

快进到开场 45 分钟(至于前面的时间哪去了?喜报:出错了。重新加载。)开题,看 G 发现是网络流板子,H 不会做,但是一直没有机时,就去开 B,结果忘记阶乘挂了一发,唐。此时 qlr 上机写 D,我口胡完 F 之后和 csy 研究 C,完全想不到怎么 hack 假做法,结果丢给 qlr 一下就叉掉并给出了正确做法,牛。qlr 过 C 之后我开始写 F,并实现了除 NTT 以外的所有部分,让 csy 写 NTT(忘记带板子了),因为我写太慢了。调了一会之后过了。此时他们两个早就胡出了 H 的做法并认为这场必须阿克(qlr 很早就声称他会 A)。H 丢给擅长 ds 的 csy 写,交上去 T 了。qlr 写 A,我和 csy 瞪眼调试。我提出试一下所有 ai=0,发现是因为复制节点导致 Treap 不完全随机,退化成 O(n2),改掉就过了,痛失一血。最后大家一起做巨大细节题 A,+0 AC,下班。

B. 军训 II

给定可任意排列的序列 ai,求子区间极差和的最小值,以及取到最小值的排列个数模 998244353

1ai1061n103

和最小当且仅当 a 升序或降序。考虑:若不大于 a 的数有 c 个,则最多有 ck+1 个长度为 k 的区间的最大值不大于 a。若不小于 a 的数有 c 个,则最多有 ck+1 个长度为 k 的区间的最小值不小于 a。升序和降序取到了最大值之和的下界和最小值之和的上界,且易证任何非升序或非降序的序列都做不到这一点。

时间复杂度 O(nlogn)代码

C. 种树

给定一棵至少有一个黑点的树,每次可以选至少有一个黑点的大小为 3 的连通块染黑,求最小操作次数。

3n105

最大化染黑两个白点的次数。因为两个白点之间的距离为 12,所以在距离不超过 2 的两个白点之间连边,树形 DP 求最大匹配即可。容易证明求出的匹配在调整后存在对应方案。

时间复杂度 O(n)代码

D. 编码器-解码器

给定字符串 s,t,设 Si=Si1+si+Si1,求 tS|s| 以子序列形式的出现次数模 998244353

1|s|,|t|100

fi,l,r 表示 t[l,r]Si 以子序列形式的出现次数 DP 即可。

时间复杂度 O(|s||t|3)代码

F. 包子鸡蛋 III

给定字符串长度 n 和每个小写字母的出现概率 pi,求恰有 megg 子序列的子串数量的期望值模 998244353

1n5×1051m1500

一个串是否是好串只和其 eg 序列的具体内容有关。

eg 序列的权值为 pecntepgcntg,求长度为 i 且恰有 megg 子序列的 eg 序列的权值和 ai,则 i 的长度为 O(n) 级别。去掉开头的 g 和最后一个 g 及其两侧的 e,从后往前的每个 e 让子序列数量至少增加 1,每个 g 让子序列数量的增加值至少增加 1,所以这部分长度不超过 m。设 fi,j,k 表示处理后长度为 i,处理前子序列数量为 jg 的数量为 keg 序列权值和,因为 kO(m) 级别,所以总复杂度 O(m2m)

求出 f 之后容易 O(n) 算出 ai。设 P=1pepg,对于长度为 j 的子串,其 eg 序列长度为 i(ij) 且合法的概率为 Pjiai(ji)。NTT 算出 cj=i=1jPjiai(ji),由期望的线性性,答案为 j=1ncj(nj+1)

时间复杂度 O(n+m2m)代码

G.

给定序列 ai,Vi,第 j 次操作要求给 VxjVyj 分别加总和为 Wj 的非负整数,求最终能否满足 ViaiV1>maxi=2nVi

2n1031m1031Viai1061Wi106

先能给 V1 加就给 V1 加,得到 V1 的最终值。此时可以知道每个 Vi 还能加多少,跑网络流即可。

时间复杂度 O(Flow(n+m,n+m))代码

ICPCO R1

喜报:出错了。重新加载。

开场看 F,猜结论结果挂了,发现左右两个数相同就爆了。后来铸币了想了好久,丢给 qlr 写又挂了两发,最后 F +4,乐死了。csy 上机写 H,发现费用流假了,让 qlr 写 L。csy 声称 H 要带权拟阵交,写不对,丢给我看,秒了,原来的建图稍微改改就行,唐。我和 qlr 研究 B,之后又研究 J。我们两个都不会写 min25,但是 csy 会啊。写完挂了,我和 csy 研究,变量改成 int128 输出不一样,一直没找到原因,交上去过了,发现是快读 read i64 里面写的 int,唐。qlr 读完 E 声称这是签到题,五分钟过了,离谱。随后 qlr 写 J,我和 csy 研究 D,发现 D 有点难写。qlr 过 J 之后只剩 45 分钟,最后发现根本写不完,摆了,下班。感觉 qlr 这场 super carry 啊,牛大了。

posted @   qAlex_Weiq  阅读(1074)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示