合集-题解

摘要:前言 不错的二合一题。 思路分析 首先套路地建出二分图:对于 \((x,y)\) 的点,连 \(x \to y+n\) 的无向边,这样问题转化为选出若干条边,使得所有点的度的奇偶性相同。 发现奇数解和偶数解具有不同的性质,考虑分别处理。 偶数解 图上有环即可。 直接 DFS 找环判断。 奇数解 在没 阅读全文
posted @ 2025-01-24 16:43 _Kenma 阅读(54) 评论(0) 推荐(0)
摘要:P6544 解题报告 前言 感觉没有紫…… 但是评了我也没意见。 思路分析 首先考虑怎样计算答案。 如果 \(b\) 在 \(a\) 的左侧,那么设 \(x\) 为 \([b,a]\) 的最大值,\(c\) 为 \([a,n]\) 中最靠左的 \(d_c>x\) 的位置,那么答案为 \(b-c-1\ 阅读全文
posted @ 2025-01-24 16:43 _Kenma 阅读(33) 评论(0) 推荐(0)
摘要:CF690A2 解题报告 前言 眼前一黑思维题(确信)。 做完估计都能当心理学专家了。 思路分析 感觉没有什么太好的切入点…… 可能可以从小到大依次分析? 那么展现一下各位海盗的内心活动。 为了方便表述,把海盗从 \(n\) 到 \(1\) 排序,从 \(n\) 到 \(1\) 提出方案。和题面中相 阅读全文
posted @ 2025-01-24 16:44 _Kenma 阅读(43) 评论(0) 推荐(0)
摘要:arc050c 解题报告 前言 这里提供一种矩阵乘法做法。 问就是因为根本看不懂现有的一篇题解。 思路分析 首先因为 lcm 没什么好的性质,考虑转化为 gcd 求解。 设 \(f_i\) 表示 \(i\) 个 \(1\) 拼接形成的数。 所以我们实际上要求 \(\frac{f_a\cdot f_b 阅读全文
posted @ 2025-01-24 16:44 _Kenma 阅读(38) 评论(0) 推荐(0)
摘要:P11311 解题报告 前言 怎么蓝了,那就写篇题解吧。 思路分析 套路地,设 \(f_i\) 表示到第 \(i\) 位的最小答案,易得转移: \[f_i=f_j+cal(j+1,i)^2,j<i \]其中 \(cal(l,r)\) 表示区间 \([l,r]\) 的不同颜色种类数。 然后你大胆猜测有 阅读全文
posted @ 2025-01-24 16:44 _Kenma 阅读(41) 评论(0) 推荐(0)
摘要:前言 有点困难题。 思路分析 考虑本质上是三维问题,考虑降维处理。 因为全部满足条件不好做,考虑正难则反,计算不合法的三元组个数。 首先对 \(a_i\) 排序,从大往小做扫描线,每次维护 \(b=i\) 时 \(c\) 的最大不合法值,那么对于每一个 \(a\),不合法的三元组数量等于全局和。 最 阅读全文
posted @ 2025-01-24 16:45 _Kenma 阅读(36) 评论(0) 推荐(0)
摘要:前言 E 比 F 困难,怎么会是呢? 思路分析 首先考虑一种经典做法:将问题转化为物品体积为 \(p_i,3p_i,5p_i,7p_i \cdots\) 的 01 背包问题。因为物品价值都为 \(1\),所以可以贪心地选择体积前 \(k\) 小的物品。 然后问题转化到这一步就自然了,考虑二分出我们选 阅读全文
posted @ 2025-01-24 16:45 _Kenma 阅读(93) 评论(0) 推荐(0)
摘要:前言 第一次做无题解的灰题,有点激动。 思路分析 首先从小数据开始思考。 当 \(n=2\) 时,可以询问 \(t_1=(1,2)\),然后返回 \(b_1=b_2=t_1\)。 当 \(n=3\) 时,可以询问 \(t_1=(1,2),t_2=(2,3)\),然后分讨一下: 当 \(t_1=t_2 阅读全文
posted @ 2025-01-24 16:46 _Kenma 阅读(63) 评论(0) 推荐(0)
摘要:abc355_e 解题报告 前言 好玩的交互题! 思路分析 首先注意到题目要求最小化询问次数,感觉瓶颈不在于得出答案,而是如何合理的询问。 发现可以转化为图论问题。 具体地,我们对于每一组合法的询问 \([L,R)\),从 \(L\) 向 \(R\) 连一条边权为 \(1\) 的无向边,表示用 \( 阅读全文
posted @ 2025-01-24 16:50 _Kenma 阅读(44) 评论(0) 推荐(0)
摘要:abc283_g 解题报告 前言 首先这个题面就很抽象。 其实就是求序列任意数的异或和中,第 \(l\) 小到第 \(r\) 小的数。 思路分析 其实是模板题。 考虑线性基可以求异或第 \(k\) 小,直接循环枚举 \([l,r]\),直接求就行了。 复杂度 \(O(n \log v)\)。 所以这 阅读全文
posted @ 2025-01-24 16:50 _Kenma 阅读(57) 评论(0) 推荐(0)
摘要:P2540 解题报告 前言 巨大抽象模拟搜索题。 写了一节自习课。 思路分析 首先因为一共就两副牌,可以直接搜索所有可能的情况。 然后就过了原题的数据了。 但是加强版数据有点强,这样写估计会 T 飞。 考虑发扬人类智慧。 如果你玩过斗地主的话,应该知道一些基本的策略。 比如说有顺子肯定不出单牌,四带 阅读全文
posted @ 2025-01-24 16:51 _Kenma 阅读(97) 评论(0) 推荐(0)
摘要:前言 调整法真是好东西。 思路分析 如果你网络流题做得比较多的话,应该能感觉出来这道题有点像。 经过若干手摸,发现根本不存在无解的情况。 每次交叉时,我们一定可以将交叉的两条路径分开,如图: 同时,根据四边形不等式,有蓝线段长度之和大于黄线段长度之和。 因此,我们发现,一定存在一种合法方案,使得连线 阅读全文
posted @ 2025-01-25 19:56 _Kenma 阅读(40) 评论(0) 推荐(0)
摘要:前言 需要脑子题。 思路分析 首先受到样例二的启发,如果我们决策这个交换纸币的过程也太困难了。所以需要换一种刻画方式。 考虑把所有纸币都放在桌子上,三个人再分配。代价就是分配之前和分配之后,每种面值的纸币的差。 这样就好 DP 了。 设 \(f_{i,a,b}\) 表示前 \(i\) 中面值的纸币, 阅读全文
posted @ 2025-01-25 19:57 _Kenma 阅读(56) 评论(0) 推荐(0)
摘要:前言 诈骗题。 思路分析 首先异或啥的别看了,是假的。 考虑如果要求异或值为 \(x\),如果我们能得到的路径长度为 \(k\),考虑: \(x \le k\),那么可以将 \(k-x\) 的部分分成两半抵消; \(x>k\),那么可以从 \(s\) 出发走到任意一个点再沿反边返回,每次增加 \(2 阅读全文
posted @ 2025-01-31 19:46 _Kenma 阅读(69) 评论(0) 推荐(0)
摘要:前言 第一次在 OI 中见到求数列极限的题,有点意思。 但是为什么会过这么多人啊。 思路分析 做一点尝试: \[\sum_{i=m} \sum_{j=0}^{m} r_ja_{i-j}=0 \]然后对于相同的 \(a_i\),合并同类项: \[\sum_{i=m}\sum_{j=0}^{m} r_j 阅读全文
posted @ 2025-02-02 12:15 _Kenma 阅读(56) 评论(0) 推荐(0)
摘要:前言 好题。 思路分析 一个朴素的想法是,对于每种字符,我们决策它放的位置,做四路归并,这样复杂度为 \(O(n^4)\)。 但是这样显然没优化前途。考虑做一些观察。 o 存在与否并不重要:o 放在任何位置都是合法的,所以为了最小化代价,我们把 o 放在原来的位置即可; () 的移动方案和 x 的移 阅读全文
posted @ 2025-02-04 21:49 _Kenma 阅读(51) 评论(0) 推荐(0)
摘要:前言 好题。 思路分析 分析一下答案的组成: 令 \(d_i=\sum_{j=1}^{i-1} [p_i<p_j]-\sum_{j=1}^{i-1}[p_i>p_j]\),\(S\) 表示选出的集合,\(cnt\) 表示集合 \(S\) 的逆序对数,\(tot\) 表示这个序列的逆序对数: \[to 阅读全文
posted @ 2025-02-04 22:19 _Kenma 阅读(53) 评论(0) 推荐(0)
摘要:前言 好题。 第一次听说切边等价。 思路分析 首先玩两个环的情况。令环长分别为 \(c_1,c_2\),重合部分的长度为 \(s\),那么答案为: \[\gcd(c_1,c_2,c_1+c_2-2s)=\gcd(c_1,c_2,2s) \]对于大于两个环的情况,我们可以任意拆解成两个环的情况,再进行 阅读全文
posted @ 2025-02-04 22:48 _Kenma 阅读(99) 评论(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 阅读(95) 评论(0) 推荐(1)
摘要:前言 这是最近 VP CF 遇到的。 感觉是套着博弈壳子的树上 DS,做起来思路也很自然,于是记录之。 思路分析 E1 经过手玩样例发现,对于 \(x\),如果存在 \(y\) 不在 \(x\) 子树内且 \(w_y > w_x\),此时 \(w_x\) 最大的 \(x\) 一定是必胜点。 原因是, 阅读全文
posted @ 2025-02-05 16:29 _Kenma 阅读(120) 评论(0) 推荐(0)
摘要:here. 感觉这场难度不大啊,我讨厌手速场。 D 有一些细节的模拟题。 消除的总行数为所有列中方格数量的最小值,下面记为 \(sum\)。 设每个方格在本列中从下到上处在 \(k\) 的位置,那么: \(k \le sum\),这个方格被消除的时间为所有处在 \(k\) 位置的格子中,\(x\) 阅读全文
posted @ 2025-02-02 12:13 _Kenma 阅读(180) 评论(0) 推荐(0)
摘要:前言 比较可做的交互题,瓶颈在于编辑距离的转化。 思路分析 首先考虑编辑距离是困难的,考虑弱化条件。 因为本题要求确定一个字符串,因此,可以尝试将编辑距离转化为判定子序列相关的信息。 具体地,考虑,对于两个字符串 \(S,T\),\(S\) 是 \(T\) 的子序列当且仅当 \(f(S,T)=|S| 阅读全文
posted @ 2025-02-07 21:56 _Kenma 阅读(31) 评论(0) 推荐(0)
摘要:前言 一种很新的排列计数。 思路分析 考虑将排列视作映射,初始令 \(p_i=i\),考虑哪些位置能够进行交换。 设 \(s_i\) 表示 \(p_i\) 的质因子集合,为了方便,考虑用元素乘积刻画这个集合。 不难发现,对于 \(s_i=s_j\) 的任意位置 \((i,j)\),它们是等价的,也就 阅读全文
posted @ 2025-02-07 22:42 _Kenma 阅读(77) 评论(0) 推荐(0)
摘要:前言 不希望被称为减半报警器模板,因为它一不是减半,二就只有这一个题。 思路分析 考虑暴力,预处理出 \(x\) 的质因数集合,每次在对应位置上对所有报警器加,如果有一个炸了就删除它。 考虑优化方向,每次我们在对应位置单点修改,能不能对这个位置上的报警器合并处理? 问题是,我们每个报警器都牵连着它所 阅读全文
posted @ 2025-02-07 22:56 _Kenma 阅读(69) 评论(0) 推荐(2)
摘要:前言 展现 mkr 极高 OI 水平题。 思路分析 首先考虑在序列上怎么做。 在序列上,考虑这样一种分治算法:每次选取序列的最大值,它一定可以把整个序列吃完,然后考虑左右区间的最大值,它们一定可以吃掉左右区间,如果它们能吃掉整个序列的最大值,它们一定能吃掉整个序列。然后分治左右区间。 不难发现这就是 阅读全文
posted @ 2025-02-09 19:17 _Kenma 阅读(37) 评论(0) 推荐(0)
摘要:前言 注意到 test_69 没有 69 个 test。 思路分析 我们知道,每次对于一个数取 gcd 时,如果这个数改变,那么至少减小至原来的 \(\frac{1}{2}\)。 然后考虑怎么判断区间每个数的 gcd 是否改变,不难发现维护区间 lcm,如果 k 是 区间 lcm 的倍数,那么区间里 阅读全文
posted @ 2025-02-09 19:25 _Kenma 阅读(43) 评论(0) 推荐(0)
摘要:前言 题目链接:here. 这是一个 T1 读错题刚 T2 导致垫底的可怜人的博客。 思路分析 首先这个柿子一看就是魔改的 FWT 的卷积。 考虑分治处理。 对于当前分治层 \(A*B=C\),考虑求出 \(C\)。 如果我们将 \(A,B,C\) 三个序列都分为 \(3\) 段,分别记为 \(A_ 阅读全文
posted @ 2025-02-09 19:46 _Kenma 阅读(100) 评论(1) 推荐(0)
摘要:here. \(perf:2341\) 草忘写了,赶紧补档。 E 这种题都能被放到 E 了吗。 考虑最小化答案为 \(cnt-1\),\(cnt\) 是联通块个数。 考虑构造答案,首先把能加的边加上,然后用 set 和并查集维护当前联通块集合,对于之前没加过的边,能加就加。 总体复杂度 \(O(m\ 阅读全文
posted @ 2025-02-10 11:17 _Kenma 阅读(54) 评论(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 阅读(52) 评论(0) 推荐(0)
摘要:here 困难场。 C 重要观察:只有每行的后缀 \(1\) 有用。 考虑归纳证明,设 \(n\) 为一行后缀 \(1\) 的个数。 对于 \(n=1\) 的情况,想要让 \(mex\) 值为 \(2\),必须选择这个后缀,否则其他后缀的和 一定 \(>1\); 对于 \(n>1\) 的情况,在之前 阅读全文
posted @ 2025-02-13 19:39 _Kenma 阅读(76) 评论(0) 推荐(0)
摘要:here. \(perf:2017\) 啥啊。 越来越过分了是吧。 我现在不仅怀疑参赛者有人机,还怀疑出题者是人机。 D 以最中间的 \(1\) 作为基准点,两边向这个 \(1\) 靠拢即可。 复杂度 \(O(n)\)。 #include<bits/stdc++.h> #define int lon 阅读全文
posted @ 2025-02-15 21:24 _Kenma 阅读(69) 评论(0) 推荐(1)
摘要:here. 困难场。 C 考虑贪心,我们在一个前缀只取正数,后缀只取负数,这样取一定可以取到最大值。 扫一遍记录前缀正数和和后缀负数和,枚举分割点即可。 复杂度 \(O(n)\)。 #include<bits/stdc++.h> #define int long long using namespa 阅读全文
posted @ 2025-02-17 16:31 _Kenma 阅读(63) 评论(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 阅读(30) 评论(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 阅读(35) 评论(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 阅读(38) 评论(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 阅读(65) 评论(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 阅读(229) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-02-23 18:00 _Kenma 阅读(22) 评论(0) 推荐(1)
摘要:打了一下午,但是好像没做出来啥有水平题? here. B 考虑每次能猜中,当且仅当拿出的卡片颜色,是多数颜色。 经过手玩发现,无论怎么取卡片,猜中的总次数都是 \(\max(a,b)\)。 所以答案就为 \(\max(a,b)\)。 #include<bits/stdc++.h> using nam 阅读全文
posted @ 2025-03-09 19:32 _Kenma 阅读(237) 评论(0) 推荐(1)
摘要:前言 直面恐惧! 思路分析 首先考虑这个形式就很像区间划分,所以考虑设 \(f_i\) 表示考虑前 \(i\) 个元素的最大价值。 考虑怎么转移,一个 naive 的想法是这样: \[f_i=\max_{j=1}^{i-1} f_j+w(j,i) a_i=a_j \]\[f_i=\max(f_i,f 阅读全文
posted @ 2025-03-15 20:29 _Kenma 阅读(79) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-03-24 09:31 _Kenma 阅读(16) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-03-24 16:38 _Kenma 阅读(8) 评论(5) 推荐(0)
摘要:前言 来自山西队爷的分享题。 思路分析 首先有一个朴素的想法,能否枚举两个集合的边权,判断是否合法。 发现是可以的。 具体地,我们设 \(D(A)=w_1,D(B)=w_2\),不失一般性,假设 \(w_1 \ge w_2\)。 这样,我们可以把图上的边 \((x,y,w)\) 分成三类: \(w 阅读全文
posted @ 2025-03-24 19:20 _Kenma 阅读(59) 评论(0) 推荐(0)
摘要:前言 好题。 思路分析 这个题分为很多部分,各个部分之间比较独立。 我们一点一点来。 首先考虑 \(f(p)\) 怎么算。 把贡献拆到每一个点上,发现: \[f(p)=\sum_{i=1}^{n}i(\sum_{j=1}^{i-1} [p_i<p_j]-\sum_{i=j+1}^{n}[p_j<p_ 阅读全文
posted @ 2025-03-27 19:16 _Kenma 阅读(30) 评论(0) 推荐(0)
摘要:前言 挺有意思的题。 从某些特殊角度来理解的话,也不算不可做题。 思路分析 首先要点权转边权,我们对于一个点 \(x\),拆点 \(x,x'\),连边 \(x\to x'\),边权为 \(a_x\),对于原图上的边 \((x,y)\),连边 \(x'\to y\),边权为 \(0\)。 然后我们要考 阅读全文
posted @ 2025-03-27 21:14 _Kenma 阅读(29) 评论(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 阅读(38) 评论(0) 推荐(0)
摘要:前言 好题,很可做也很有意思。 思路分析 首先发现如果一个点被操作了多次,那么只有最后一次会影响它的位置。 我们称影响位置的操作为有效操作,不影响位置的为无效操作。 不难发现,序列可以分为三部分,前面部分是往前放的有效操作,中间部分是没有移动过的,后面部分是往后放的有效操作。 于是可以考虑一个 DP 阅读全文
posted @ 2025-03-28 17:23 _Kenma 阅读(40) 评论(0) 推荐(0)
摘要:前言 这为啥能想到来着。 思路分析 首先你发现答案只和初态和末态有关。 于是可以考虑定义势能,答案为势能的减少量。 经过仔细读题后发现,每次我们选择在一行或者一列操作,那么每一行和每一列的势能都是相对独立的。 于是我们只需要考虑在一行进行操作的势能变化,一行的势能是本行所有元素的势能之和,原图的势能 阅读全文
posted @ 2025-03-29 14:22 _Kenma 阅读(51) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-03-31 14:29 _Kenma 阅读(18) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-04-03 11:58 _Kenma 阅读(20) 评论(0) 推荐(2)
摘要:好题。 考虑我们将序列中本质相同的元素缩成一个,然后考虑计数。 我们将序列中的数分为两类,分别是 \(a_i < \frac{k}{2}\) 和 \(a_i \ge\frac{k}{2}\),之所以这么分是因为第一类数不能相邻,第二类数可以相邻,第一类数和第二类数之间有相邻的条件。 从大到小考虑第二 阅读全文
posted @ 2025-04-03 17:48 _Kenma 阅读(48) 评论(0) 推荐(1)
摘要:前言 建议收录于新网络流 24 题。 这个拆点是魔法吧。 思路分析 不失一般性,令 \(b_x \le b_y\),那么原限制转化为: \(a_x \ge b_x\) 且 \(a_y \ge b_x\); \(a_x \ge b_y\) 或 \(a_y \ge b_y\)。 对于第一条限制,我们令 阅读全文
posted @ 2025-04-04 16:44 _Kenma 阅读(31) 评论(0) 推荐(1)
摘要:前言 还是通信题好玩。 但是这个不能用全局变量的限制非常讨厌,在实现上可能会带来一些困扰。 QOJ 有提交地址:here. 思路分析 为了方便,我们称得到信息的人为 \(A\),试图破译信息的人为 \(B\)。 首先分析 \(A\) 能在每个节点给 \(B\) 留 \(20\) 位 01 串,再根据 阅读全文
posted @ 2025-04-04 19:27 _Kenma 阅读(50) 评论(0) 推荐(1)
摘要:VP 做题就是舒服……知道题目大致难度,知道大家得分分布,写挂了马上能看到评测结果。 就是不知道对临场水平提升有没有太大的帮助。 2020 100+100+10,金。 补题进度:100+100+100。 A 感觉有一车紫严格大于这个东西。 首先你要看懂题,我试了,没有样例解释根本读不懂! 在真正理解 阅读全文
posted @ 2025-04-05 14:29 _Kenma 阅读(127) 评论(4) 推荐(1)
摘要:前言 好题,在英语课上想出来的。 但是这个评蓝是不是星战得降绿了? 思路分析 首先差分原序列,把区间修改变成两个单点修改。 然后考虑什么时候两个 01 串是等价的。 我们希望把两个 01 串不同的位置变成相同的。不难发现,如果我们将一对单点修改之间连边,那么如果两个不同的位置之间联通,那么我们就可以 阅读全文
posted @ 2025-04-11 16:03 _Kenma 阅读(33) 评论(0) 推荐(1)
摘要:前言 你说的对,但是联合省选 2025 D1T2。 这居然会成为我第一道操作分块。 思路分析 首先考虑无向图连通性问题基本不存在 polylog 做法,所以我们直接考虑操作分块。 从左往右扫每一个块,处理询问。这样,我们只需要考虑两类问题怎么做: 未在本块修改的边,对本块内的询问产生的影响,要求 \ 阅读全文
posted @ 2025-04-11 19:53 _Kenma 阅读(56) 评论(0) 推荐(1)
摘要:here. D 考虑原问题等价于选择若干个字符种类,放到下标为奇数的位置,选择若干个字符种类,放到下标为偶数的位置。 然后考虑对于一种划分方案,它的贡献是奇偶两个集合的多重集排列数,也就是: \[\frac{(\sum_{i\in S}c_i)!}{\prod_{i\in S}c_i!} \cdot 阅读全文
posted @ 2025-04-11 22:37 _Kenma 阅读(45) 评论(0) 推荐(1)
摘要:here. 好像不难,问题是时间不够。 D 来搞笑的不是。 考虑二分答案,相当于是 \(\le mid\) 的数都要被删除,所以我们把这些位置标为 \(1\),相当于是要用至多 \(m\) 条长度为 \(k\) 的线段覆盖所有为 \(1\) 的位置,从左往右贪即可。 复杂度 \(O(n \log n 阅读全文
posted @ 2025-04-12 11:46 _Kenma 阅读(40) 评论(0) 推荐(1)
摘要:here. E 啥啊,难评。 考虑把所有格子涂成白色,然后考虑将一个格子由白变黑的贡献。 发现只有在边上且不在角上的格子会影响整体的奇偶性,也就是说我们要求这些格子中,黑色格子的数量为偶数。我们把这些位置的格子称为关键格子。 设总体绿色格子数量为 \(sum\),于是考虑: 如果关键格子中有绿色格子 阅读全文
posted @ 2025-04-12 15:47 _Kenma 阅读(36) 评论(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 阅读(28) 评论(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 阅读(40) 评论(0) 推荐(1)
摘要:前言 感觉题目条件明示做法,并加深了我对 CF 的本质是 PH 的刻板印象。 思路分析 因为不小心看见了标签有 graph,所以断定这是一道图论建模题。 然后发现有限制 \(a_i\in[i-n,i-1]\),发现这个是一个长度为 \(n\) 的区间,我们希望把它映射到 \([1,n]\),发现 \ 阅读全文
posted @ 2025-04-13 22:10 _Kenma 阅读(38) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-04-23 09:06 _Kenma 阅读(34) 评论(2) 推荐(3)
摘要:前言 怎么数据这么强的,dp 少写了一个转移式直接 0 分 \xia 思路分析 考虑一个无脑 DP,设 \(f_{i,0/1,0/1,0/1}\) 表示考虑 \(b\) 数组的前 \(i\) 位,是否已经出现过失配,奇数位之前是否已经取反,偶数位之前是否已经取反的最小操作次数。 转移比较硬核,不再一 阅读全文
posted @ 2025-04-27 07:28 _Kenma 阅读(57) 评论(1) 推荐(1)
摘要:前言 好题,不过有点经典。 思路分析 首先一步树上差分将问题转化为,每次可以对一个点或两个个点异或,最小化所有点点权变为 \(0\) 的代价。 然后考虑一步操作至多将两个点权相等的点全部变为 \(0\),所以先把点权相等的配对消除一定不劣。 这样,每种点权只剩下 \(\le 1\) 个,然后设 \( 阅读全文
posted @ 2025-05-02 20:20 _Kenma 阅读(38) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-05-04 22:36 _Kenma 阅读(5) 评论(0) 推荐(1)
摘要:前言 被 *2200 狙了可还行。 思路分析 考虑如果对着格子 DP 不如杀人,所以我们把这个念想丢进垃圾桶里面。 所以我们尝试去分析性质。 不难发现,如果我们把格子边视为点,考虑对点黑白染色,两种不同的颜色分别表示是否有红色边和它相连。 那么我们格子 A 和 B 相当于对点的限制,具体来说: A: 阅读全文
posted @ 2025-05-06 21:31 _Kenma 阅读(39) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-05-08 10:01 _Kenma 阅读(7) 评论(0) 推荐(1)
摘要:前言 详细解密为什么我过 T3 没有 Ag。 思路分析 首先这个题面太唬人了,但是读完发现和计算几何啥的没关系。 考虑末态,不难发现是线段两两配对垂直,此时答案是 \(25000(\lfloor\frac{n}{2}\rfloor)^2\)。 于是考虑构造合法操作方案使得答案不降。 有一个想法是,以 阅读全文
posted @ 2025-05-19 21:22 _Kenma 阅读(103) 评论(2) 推荐(2)
该文被密码保护。
posted @ 2025-05-22 16:30 _Kenma 阅读(9) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-07-01 14:33 _Kenma 阅读(1) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-07-01 19:21 _Kenma 阅读(4) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-07-05 10:47 _Kenma 阅读(13) 评论(1) 推荐(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-21 13:40 _Kenma 阅读(37) 评论(1) 推荐(2)
该文被密码保护。
posted @ 2025-08-15 13:09 _Kenma 阅读(34) 评论(0) 推荐(2)
该文被密码保护。
posted @ 2025-08-21 21:23 _Kenma 阅读(8) 评论(0) 推荐(1)
摘要:原题: A 求什么就对什么计数。寻找合法解的条件。 考虑寻找集合合法的条件,为了方便考虑,我们将集合中元素从小到大排序。 假设目前考虑到了集合中的元素 \(a_i\),因为我们要求集合能够表示 \([0,\sum_{j=1}^i a_j]\) 中的所有元素,所以 \([0,\sum_{j=1}^{i 阅读全文
posted @ 2025-08-23 12:02 _Kenma 阅读(93) 评论(1) 推荐(0)
该文被密码保护。
posted @ 2025-08-25 12:00 _Kenma 阅读(48) 评论(0) 推荐(3)
该文被密码保护。
posted @ 2025-08-26 18:00 _Kenma 阅读(47) 评论(0) 推荐(2)
摘要:两个序列同构当且仅当两个序列生成的笛卡尔树相同。所以我们要对序列能够生成的笛卡尔树计数。 为了方便,我们钦定相等元素左边更大,这样笛卡尔树就成了二叉树。 不难发现,笛卡尔树合法的条件是,其任意左链的长度 \(\le m\)。 于是考虑 DP。设 \(f_{i,j}\) 表示左链长度 \(\le i\ 阅读全文
posted @ 2025-08-27 11:28 _Kenma 阅读(48) 评论(0) 推荐(3)
该文被密码保护。
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-27 17:34 _Kenma 阅读(11) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-09-30 14:04 _Kenma 阅读(5) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-10-23 17:48 _Kenma 阅读(5) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-10-30 17:35 _Kenma 阅读(2) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2025-11-08 18:47 _Kenma 阅读(5) 评论(0) 推荐(1)