合集-比赛题合集

摘要:here. 感觉这场难度不大啊,我讨厌手速场。 D 有一些细节的模拟题。 消除的总行数为所有列中方格数量的最小值,下面记为 \(sum\)。 设每个方格在本列中从下到上处在 \(k\) 的位置,那么: \(k \le sum\),这个方格被消除的时间为所有处在 \(k\) 位置的格子中,\(x\) 阅读全文
posted @ 2025-02-02 12:13 _Kenma 阅读(172) 评论(0) 推荐(0)
摘要:here. 草怎么是贪心专场。 问就是不会 F。 C 注意到操作一至多只会进行一次,进行两次就抵消了。 所以直接枚举所有可能操作取最大值即可。 注意要开 long long。 总体复杂度 \(O(tn^3)\)。 #include<bits/stdc++.h> #define int long lo 阅读全文
posted @ 2025-02-02 19:23 _Kenma 阅读(91) 评论(0) 推荐(1)
摘要:前言 题目链接:here. 这是一个 T1 读错题刚 T2 导致垫底的可怜人的博客。 思路分析 首先这个柿子一看就是魔改的 FWT 的卷积。 考虑分治处理。 对于当前分治层 \(A*B=C\),考虑求出 \(C\)。 如果我们将 \(A,B,C\) 三个序列都分为 \(3\) 段,分别记为 \(A_ 阅读全文
posted @ 2025-02-09 19:46 _Kenma 阅读(93) 评论(1) 推荐(0)
摘要:here. \(perf:2341\) 草忘写了,赶紧补档。 E 这种题都能被放到 E 了吗。 考虑最小化答案为 \(cnt-1\),\(cnt\) 是联通块个数。 考虑构造答案,首先把能加的边加上,然后用 set 和并查集维护当前联通块集合,对于之前没加过的边,能加就加。 总体复杂度 \(O(m\ 阅读全文
posted @ 2025-02-10 11:17 _Kenma 阅读(49) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-02-11 18:56 _Kenma 阅读(33) 评论(3) 推荐(1)
摘要:here. here. 感觉是 good round。 2C 唯一没做明白的题。 经过若干手玩,发现在最优次数内达到目标,加的值是固定的。 也就是说,如果我加了 \(9\),想要达到目标,以后不可能再加 \(99\)。 又因为感觉答案上界很小,所以直接暴搜即可。 复杂度 \(O(能过)\)。 #in 阅读全文
posted @ 2025-02-13 10:17 _Kenma 阅读(50) 评论(0) 推荐(0)
摘要:here 困难场。 C 重要观察:只有每行的后缀 \(1\) 有用。 考虑归纳证明,设 \(n\) 为一行后缀 \(1\) 的个数。 对于 \(n=1\) 的情况,想要让 \(mex\) 值为 \(2\),必须选择这个后缀,否则其他后缀的和 一定 \(>1\); 对于 \(n>1\) 的情况,在之前 阅读全文
posted @ 2025-02-13 19:39 _Kenma 阅读(74) 评论(0) 推荐(0)
摘要:here. \(perf:2017\) 啥啊。 越来越过分了是吧。 我现在不仅怀疑参赛者有人机,还怀疑出题者是人机。 D 以最中间的 \(1\) 作为基准点,两边向这个 \(1\) 靠拢即可。 复杂度 \(O(n)\)。 #include<bits/stdc++.h> #define int lon 阅读全文
posted @ 2025-02-15 21:24 _Kenma 阅读(65) 评论(0) 推荐(1)
摘要:here. 困难场。 C 考虑贪心,我们在一个前缀只取正数,后缀只取负数,这样取一定可以取到最大值。 扫一遍记录前缀正数和和后缀负数和,枚举分割点即可。 复杂度 \(O(n)\)。 #include<bits/stdc++.h> #define int long long using namespa 阅读全文
posted @ 2025-02-17 16:31 _Kenma 阅读(60) 评论(0) 推荐(0)
摘要:here. C 考虑这样一种构造: \[1,2,3,\cdots,n-1,n,1,2,3,\cdots,n-1,n \]或者是: \[1,2,3,\cdots,n-2,n-1,n,1,2,3,\cdots,n-2,n-1 \]这里的 \(n\) 不是题面中的 \(n\)。 但是经检查,这种构造会在 阅读全文
posted @ 2025-02-17 21:28 _Kenma 阅读(28) 评论(0) 推荐(0)
摘要:here. 感觉出的都很不错,做起来很舒服。 C 考虑直接 DP。 设 \(f_i,0/1\) 表示考虑前 \(i\) 个人,第 \(i\) 个人是否说谎的方案数。 枚举第 \(i\) 个人是否说谎,得到转移: \[f_{i,0}=f_{i-1,1} \]\[f_{i,1}=f_{i-1,0}[a_ 阅读全文
posted @ 2025-02-18 17:06 _Kenma 阅读(30) 评论(0) 推荐(1)
摘要:here. E 考虑对 F 先删边再加边。 删边时,用并查集维护出 G 的联通性,如果 F 中的边 \((x,y)\) 在 G 中不联通,就把它删去。 加边时,用并查集维护出 F 的联通性,如果 G 中的边 \((x,y)\) 在 F 中不连通,就在 F 中加边 \((x,y)\)。 不难发现这样贪 阅读全文
posted @ 2025-02-18 23:00 _Kenma 阅读(33) 评论(0) 推荐(0)
摘要:here. C 考虑最终合法的字符串,形如: \[1,2,2,2,\cdots,2,2,2,3 \]然后考虑对于每对 \(1,3\) 对答案的贡献是,它们中间 \(2\) 的个数,记为 \(cnt\),\(2^{cnt}-1\)。 然后考虑从左往右扫,每次遇到 \(1\) 往 ds 里加入一个 \( 阅读全文
posted @ 2025-02-20 09:07 _Kenma 阅读(60) 评论(0) 推荐(0)
摘要:A 考虑从大到小考虑每一个取值的数,如果能换就换,如果换了没用就不换。 实现上使用 vector 存下标,复杂度 \(O(n)\)。 #include<bits/stdc++.h> using namespace std; int t,n,m,a[1000005],flag,tim; vector< 阅读全文
posted @ 2025-02-22 19:07 _Kenma 阅读(204) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-02-23 18:00 _Kenma 阅读(22) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-03-24 16:38 _Kenma 阅读(8) 评论(5) 推荐(0)
该文被密码保护。
posted @ 2025-03-24 09:31 _Kenma 阅读(16) 评论(0) 推荐(0)
摘要:here. 挺有意思的一场,但是我真不会 F2。 D 考虑把这个过程反过来,从后往前做,题意转化为每次进行两次操作中的一个: \(r \to r+1\); \(r \to r-k,ans\to ans+d_i\) 你发现这是一个经典的反悔贪心模型。 考虑用小根堆维护目前选择的 \(d_i\),然后每 阅读全文
posted @ 2025-03-28 14:24 _Kenma 阅读(35) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-03-31 14:29 _Kenma 阅读(18) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-04-03 11:58 _Kenma 阅读(20) 评论(0) 推荐(2)
摘要:here. D 考虑原问题等价于选择若干个字符种类,放到下标为奇数的位置,选择若干个字符种类,放到下标为偶数的位置。 然后考虑对于一种划分方案,它的贡献是奇偶两个集合的多重集排列数,也就是: \[\frac{(\sum_{i\in S}c_i)!}{\prod_{i\in S}c_i!} \cdot 阅读全文
posted @ 2025-04-11 22:37 _Kenma 阅读(40) 评论(0) 推荐(1)
摘要:here. 好像不难,问题是时间不够。 D 来搞笑的不是。 考虑二分答案,相当于是 \(\le mid\) 的数都要被删除,所以我们把这些位置标为 \(1\),相当于是要用至多 \(m\) 条长度为 \(k\) 的线段覆盖所有为 \(1\) 的位置,从左往右贪即可。 复杂度 \(O(n \log n 阅读全文
posted @ 2025-04-12 11:46 _Kenma 阅读(38) 评论(0) 推荐(1)
摘要:here. E 啥啊,难评。 考虑把所有格子涂成白色,然后考虑将一个格子由白变黑的贡献。 发现只有在边上且不在角上的格子会影响整体的奇偶性,也就是说我们要求这些格子中,黑色格子的数量为偶数。我们把这些位置的格子称为关键格子。 设总体绿色格子数量为 \(sum\),于是考虑: 如果关键格子中有绿色格子 阅读全文
posted @ 2025-04-12 15:47 _Kenma 阅读(32) 评论(0) 推荐(1)
摘要:here. here. 2D 抖音小游戏。 考虑从后往前 DP,设 \(f_{i,0/1}\) 表示在第 \(i\) 个位置放一个人,会给结果贡献几个人。 转移枚举当前位置是否是乘法: \(f_{i,j}=f_{i+1,j}\),当前位置是加法; \(f_{i,j}=a_{i}\max(f_{i+1 阅读全文
posted @ 2025-04-12 18:01 _Kenma 阅读(25) 评论(0) 推荐(1)
摘要:here. D 考虑水平 \(\le a_1\) 的选手不可能排在 1 号前面,所以把他们豆沙了。 现在只需要考虑怎样组题了。我们定义 \(c_i\) 表示第 \(i\) 题能够有几个人会,特别地,如果 \(b_i \le a_1\),那么 \(c_i=0\)。\(c\) 可以排序后用双指针求出。 阅读全文
posted @ 2025-04-13 16:53 _Kenma 阅读(39) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-04-23 09:06 _Kenma 阅读(34) 评论(2) 推荐(3)
该文被密码保护。
posted @ 2025-06-19 20:27 _Kenma 阅读(12) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-05-27 21:24 _Kenma 阅读(17) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-07-01 14:33 _Kenma 阅读(1) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-08-06 12:37 _Kenma 阅读(39) 评论(1) 推荐(2)
该文被密码保护。
posted @ 2025-08-08 12:35 _Kenma 阅读(19) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-08-11 12:37 _Kenma 阅读(37) 评论(3) 推荐(1)
该文被密码保护。
posted @ 2025-08-11 20:07 _Kenma 阅读(11) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-08-15 13:09 _Kenma 阅读(34) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-08-21 13:40 _Kenma 阅读(37) 评论(1) 推荐(2)
摘要:原题: A 求什么就对什么计数。寻找合法解的条件。 考虑寻找集合合法的条件,为了方便考虑,我们将集合中元素从小到大排序。 假设目前考虑到了集合中的元素 \(a_i\),因为我们要求集合能够表示 \([0,\sum_{j=1}^i a_j]\) 中的所有元素,所以 \([0,\sum_{j=1}^{i 阅读全文
posted @ 2025-08-23 12:02 _Kenma 阅读(92) 评论(1) 推荐(0)
该文被密码保护。
posted @ 2025-08-25 12:00 _Kenma 阅读(48) 评论(0) 推荐(3)
该文被密码保护。
posted @ 2025-08-26 18:00 _Kenma 阅读(47) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-08-28 12:31 _Kenma 阅读(35) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-09-06 12:58 _Kenma 阅读(26) 评论(1) 推荐(1)
该文被密码保护。
posted @ 2025-09-12 15:01 _Kenma 阅读(2) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-09-26 08:56 _Kenma 阅读(1) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-09-26 12:36 _Kenma 阅读(4) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-09-26 17:15 _Kenma 阅读(3) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-09-30 14:04 _Kenma 阅读(5) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-10-30 17:35 _Kenma 阅读(2) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-11-08 18:47 _Kenma 阅读(5) 评论(0) 推荐(1)