合集-比赛题合集
abc391 题解合集
摘要:here. 感觉这场难度不大啊,我讨厌手速场。 D 有一些细节的模拟题。 消除的总行数为所有列中方格数量的最小值,下面记为 。 设每个方格在本列中从下到上处在 的位置,那么: ,这个方格被消除的时间为所有处在 位置的格子中,
CF Round 1001 题解合集
摘要:here. 草怎么是贪心专场。 问就是不会 F。 C 注意到操作一至多只会进行一次,进行两次就抵消了。 所以直接枚举所有可能操作取最大值即可。 注意要开 long long。 总体复杂度 。 #include<bits/stdc++.h> #define int long lo
题解:mex times mex(省选模拟赛 T2)
摘要:前言 题目链接:here. 这是一个 T1 读错题刚 T2 导致垫底的可怜人的博客。 思路分析 首先这个柿子一看就是魔改的 FWT 的卷积。 考虑分治处理。 对于当前分治层 ,考虑求出 。 如果我们将 三个序列都分为 段,分别记为 \(A_
abc392 题解合集
摘要:here. 草忘写了,赶紧补档。 E 这种题都能被放到 E 了吗。 考虑最小化答案为 , 是联通块个数。 考虑构造答案,首先把能加的边加上,然后用 set 和并查集维护当前联通块集合,对于之前没加过的边,能加就加。 总体复杂度 \(O(m\
CF Round 1004 题解合集
摘要:here. here. 感觉是 good round。 2C 唯一没做明白的题。 经过若干手玩,发现在最优次数内达到目标,加的值是固定的。 也就是说,如果我加了 ,想要达到目标,以后不可能再加 。 又因为感觉答案上界很小,所以直接暴搜即可。 复杂度 。 #in
CF Round 1002 题解合集
摘要:here 困难场。 C 重要观察:只有每行的后缀 有用。 考虑归纳证明,设 为一行后缀 的个数。 对于 的情况,想要让 值为 ,必须选择这个后缀,否则其他后缀的和 一定 ; 对于 的情况,在之前
abc393 题解合集
摘要:here. 啥啊。 越来越过分了是吧。 我现在不仅怀疑参赛者有人机,还怀疑出题者是人机。 D 以最中间的 作为基准点,两边向这个 靠拢即可。 复杂度 。 #include<bits/stdc++.h> #define int lon
CF Round 1005 题解合集
摘要:here. 困难场。 C 考虑贪心,我们在一个前缀只取正数,后缀只取负数,这样取一定可以取到最大值。 扫一遍记录前缀正数和和后缀负数和,枚举分割点即可。 复杂度 。 #include<bits/stdc++.h> #define int long long using namespa
CF Round 999 题解合集
摘要:here. 感觉出的都很不错,做起来很舒服。 C 考虑直接 DP。 设 表示考虑前 个人,第 个人是否说谎的方案数。 枚举第 个人是否说谎,得到转移: \[f_{i,1}=f_{i-1,0}[a_
CF Round 998 题解合集
摘要:here. E 考虑对 F 先删边再加边。 删边时,用并查集维护出 G 的联通性,如果 F 中的边 在 G 中不联通,就把它删去。 加边时,用并查集维护出 F 的联通性,如果 G 中的边 在 F 中不连通,就在 F 中加边 。 不难发现这样贪
CF Edu Round 174 题解合集
摘要:here. C 考虑最终合法的字符串,形如: 然后考虑对于每对 对答案的贡献是,它们中间 的个数,记为 ,。 然后考虑从左往右扫,每次遇到 往 ds 里加入一个 \(
2025 USACO Feb 银组题解合集
摘要:A 考虑从大到小考虑每一个取值的数,如果能换就换,如果换了没用就不换。 实现上使用 vector 存下标,复杂度 。 #include<bits/stdc++.h> using namespace std; int t,n,m,a[1000005],flag,tim; vector<