摘要:
K 进制 FWT 是简单的,模拟单位根的技巧是通用的。 阅读全文
摘要:
很有意思 .. 但是不知道在考场碰到阶大于 $1$ 时,有没有能力处理大量的式子,毕竟感觉细节并不少。>_< 不过想必以我的熟练度也不敢轻易使用。 阅读全文
摘要:
写 MTT 记得预处理单位根 .. 不然容易炸精度。 阅读全文
摘要:
给一个稍微复杂点的做法()。
考虑用 $\mathbf{triplet}$ 为辅确定单个元素,$\mathbf{straight}$ 为主求解。首先将问题以 $n$ 的奇偶性分成两种情况,然后可以注意到两个点:
- 问某个 $a_i$ 第两次后一定能确定它的值。
- 当知道某个 $a_i$ 是否为 $0$ 时,只需要问一次就可以知道它的值。
那么首先考虑 $n$ 是奇数的情 阅读全文
摘要:
三棵线段树。 A 将每个数表示成 \(2^k\times c\),其中 \(c\) 是奇数,显然最后一顶找到一个最大的 \(c\) 将所有的 \(2^k\) 都乘过去即可。 代码:Submission #137565948 - Codeforces B 一次操作最多消除一个 abc 也一定消除一个 阅读全文
摘要:
没有 vp A 略 B 略 C C1 的做法就是问整个串,然后问 \([1,n-1]\),用 map 维护,找到所有的后缀可以轻松还原。 C2 考虑还原出前一半,然后问整个串,按照串长分类讨论字符的出现次数就能求得后一半。 代码(C1):Submission #133319703 - Codefor 阅读全文
摘要:
编了一个奇怪的做法,看起来好像都不太一样。
考虑单调栈找到每个位置后第一个比其小的点,然后连边(以那个点为父亲)可以连出一棵森林。注意到区间询问其实只需要关心这个点祖先链上的一段点。
那么将询问离线,然后在树上线段树合并。在讨论节点 $u$ 到其父亲的贡献时,在 $[u,\mathrm{fa}_u]$ 这一段区间中,之前的区 阅读全文
摘要:
赛时通过 ABCD A 枚举上下边界,从左到右扫描右端点维护左端点答案,显然推进一格右端点对所有左端点的影响是一样的。 代码:Submission #133205897 - Codeforces B 笛卡尔树 dp 。复杂度是 \(O(n^5)\) 。稍微剪点枝,用一些满二叉树叶子个数的限制之类的东 阅读全文
摘要:
前 $50$ 分基本是白给的。现在来讨论 Subtask 5,也就是说求:
$$
\sum_{i=1}^{n}\sum_{j=1}^{n}f_d(ij)
$$
注意到如果令 $g(i)$ 表示 $\prod (-1)^{k_i}$,那么有 $f_d(ij)=g(i)g(j)f_d(ij)^2$ 。此时 阅读全文
摘要:
考虑令 $f_{i,j}$ 表示前 $i$ 个数,$b$ 的最后一个是 $j$ 时最小段数。转移:
$$
f_{i,j}=[j\not=a_i-j]+\min_{1\leq k< a_{i-1}}\left(f_{i-1,k}+[a_i-j\not=k]\right)
$$
注意到后面的转移,如果 $f_{i-1,a_i-j}$ 不是最小值,那么从最小值转移不会更劣。
用 set 维护所有最小值的位置,然后再维护一个最小 阅读全文