摘要:
不开 long long 见祖宗! 阅读全文
摘要:
本题通过将原数列转化为差分数组 $\{c_i\}$ ,并推导得出 $\sum_{k = 1}^n \frac{k(k + 1)}{2} c_k = M$。构建生成函数 $[x^M] F(x)=\prod_{k = 1}^{\min(n,\sqrt{M})} \frac{1}{1 - x^{\frac{k(k + 1)}{2}}}$,利用递推式子 $f_{n,i}=f_{n - 1,i}+f_{n,i - t}$ 以$O(M\sqrt{M})$ 时间复杂度求解。对于凸壳斜率正负都存在的情况,枚举凸壳最低点 $p$ 将数列分左右部计算,通过类似递推处理 $p$ 移动情况并避免重复计算,同时考虑原凸壳二阶导数非负,枚举上移量并将相关项系数加入答案。 阅读全文
摘要:
vegetable just more practise. 阅读全文
摘要:
本题给出一棵以 $1$ 为根、含 $n$ 个点且各结点有点权 $a_i$ 的树,有 $m$ 次操作,分查询点权、修改路径/子树/距离某点不超过 $d$($d \le 10,n,m \le 10^5$)的点权这 $4$ 种操作类型。
思路上先考虑重剖,因 $d$ 范围尝试暴力维护操作,分析操作律及标记永久化等情况与对应时间复杂度,后指出操作特性问题,决定在 dfs 序上维护,采用在线段树里打标记及类似下放标记的方法。 阅读全文
摘要:
给定树($n\leq100$)求合法划分方案价值和(对 $mod$ 取模)。思路上用树形DP,具体步骤:先刻画合法子集特点后,一是计算合法划分方案数,分点为集合头与一般结点讨论,点是集合头时,枚举儿子、其未用一般结点数量及选或不选情况来转移;是一般结点时,同样枚举相关情况转移。二是求原问题,按涂色模型理解,对加入点分是头结点(再分涂色情况)、是一般结点讨论,定义对应状态,按不同情况给出状态转移方程,最终答案为 $f_{1,0,0,1}$。 阅读全文
摘要:
templates 前言 2024.11.25 此文用于整理板子 字符串 KMP namespace KMP { constexpr int N=1e6+7; char s[N],t[N]; int lens,lent; int nxt[N];// 后缀 i 的 border 长度 void mai 阅读全文
摘要:
重链剖分。 阅读全文
摘要:
“朱雀湖(lake)”问题中,定义 \( f(S,P) \) 为字符串 \( S \) 被 \( P \) 匹配次数(匹配不交),给定 \( S \) 、 \( P \) 长度 \( n \) 、 \( m \) 及字符集大小 \( k \) ,且 \( P \) 每种字符出现次数不超过2次,求 \( \sum f(S,P) \) 。解题思路是用容斥原理,先不管匹配不交限制求 \( g(S,P) \) ,算出常规贡献后减去重叠匹配多算部分,经多次容斥并预处理相关内容来准确计算,时间复杂度为 \( O(n + m^2) \) 。 阅读全文
摘要:
SS241121B 题解:采用变进制数表示法,将 $a_i'$ 表示为以 $b_j'$ 为基的混合基数系统。通过维护混合基数表示并进行混合基数乘法,高效计算 $(a_i' \bmod b_j') \bmod 998244353$,时间复杂度 O(nm)。 需注意模运算和进位处理。 阅读全文
摘要:
SS241120D 题解:求不包含内点的最大矩形面积。 $O(n^2)$ 算法可通过巧妙枚举边界实现。 最优解采用分治策略,利用最优矩形必过中位线($x$ 或 $y$ 坐标)的性质,结合线段树维护,达到 $O(n \log n)$ 的时间复杂度。 阅读全文
摘要:
SS241119C 题解:利用事件间的依赖关系构建 DAG。对于每条链,事件发生的概率可由错排公式计算,时间复杂度 O(n)。需注意处理循环及边界情况。 阅读全文
摘要:
CF802C “Heidi and Library (hard)” 是一道最小化书架花费的问题。该问题可转化为选择 $O(n)$ 个区间,最大化价值,且每个时间段的覆盖次数不超过 $m-1$。文章提出了模拟退火和网络流 ($O(n^2m)$) 两种解法。模拟退火是一种启发式算法,其运行时间不确定;网络流方法的时间复杂度为 $O(n^2m)$。两者都旨在解决容量有限书架下的最小购买花费问题。 阅读全文
摘要:
这道题要求在一个长度为 $n$ 的序列 $a$ 上进行特定的归并排序操作,并回答 $q$ 次询问,每次询问给出操作次数 $t$ 和位置 $x$,问进行 $t$ 次操作后 $a_x$ 的值。文章通过将序列分成若干区间,每个区间的开头都比后面的元素大,比下一个区间开头小,并使用权值线段树维护区间信息。通过拆块操作和预处理每个位置后面第一个比它大的位置,确保拆块时间为 $O(1)$。最终时间复杂度为 $O(n \log n)$。 阅读全文
摘要:
这道题要求计算将数组 $b$ 中的元素全部变为 $0$ 的操作方案数,每次操作可以选择两个元素并减 $1$。文章首先判断数组元素和的奇偶性,并使用动态规划解决问题,通过枚举当前数字装入不同类型桶的数量来进行状态转移,最终时间复杂度为 $O((\sum b)^2)$。 阅读全文
摘要:
这道题要求在 $n$ 个数上执行 $m$ 个区间加 $1$ 操作,并输出每次操作后的全局颜色数量。文章使用扫描线+树状数组,通过判断颜色 $c$ 是否消失,$c+1$ 是否新出现来解决问题。对颜色 $c$ 消失的情况,文章使用二维数点的方式统计贡献,而对 $c+1$ 新出现的情况,文章利用树状数组维护区间和来快速计算贡献。最终时间复杂度为 $O((n+m) \log n)$。 阅读全文