联合省选 2020

联合省选 2020

[省选联考 2020 A/B 卷] 冰火战士

大力线段树卡常题。

code

[省选联考 2020 A 卷] 组合数问题

普通多项式转下降幂多项式,斯特林展开拆组合数。

code

[省选联考 2020 A 卷] 魔法商店

咕咕咕。

[省选联考 2020 A/B 卷] 信号传递

先将贡献拿形式话的语言写出,假设 $dis_i$ 表示 $i$ 的位置,那么

- $dis_v-dis_u\space$ $v$ 在 $u$ 右面 。
- $k(dis_u+dis_v)$ $v$ 在 $u$ 左面。

每个贡献仅与相对位置有关,对位置状压,$f_{S}$ 表示当前选择的集合为 $S$ ,且他们在 $1\sim |S|$ 位置上。

由于贡献独立很好转移,只是这题卡空间所以对代价分块维护。

code

[省选联考 2020 A 卷] 树

方法一

本题需要支持维护合并,插入,每个点加一,求异或和的数据结构。

考虑 $trie$ 树维护二进制,合并,插入,求异或和与线段树合并类似,而每个点均 $+1$ 其实是让后缀的 $1$ 变为 $0$ ,然后将下一位的 $0$ 变成 $1$ 。

那么若 $trie$ 树是从低位往高位建立那么对应的即为将左儿子与右儿子反转,然后向左儿子递归。

实现时可以多建立一位就不用考虑 $111…11\rightarrow 100…00$ 。

code

方法二

一个点 $u$ 做的贡献是他的根的链,若按位考虑可以看成有许多个区间是相同的。

可以发现如果当前考虑第 $k$ 位那么循环节类似长成 $00…0111…1$ ,注意有可能循环移位,其中 $0$ 与 $1$ 均有 $2^{k}$ 个。

那么差分以后就仅有 $2$ 个元素有数,他们在 $\pmod {2^k}$ 意义下是相同的。

对应在树上即为他们在深度 $\pmod {2^k}$ 意义下是相同的,记录一下未进入子树与进入子树分别的差分值异或即为该子树为当前点提供的差分值。

code

[省选联考 2020 A 卷] 作业题

反演后跑矩阵树定理。

code

[省选联考 2020 B 卷] 卡牌游戏

前缀和累计。

code

[省选联考 2020 B 卷] 消息传递

点分治。

code

[省选联考 2020 B 卷] 幸运数字

离散化区间,差分计算。

code

[省选联考 2020 B 卷] 丁香之路

假设当前我们需要求 $S\rightarrow T$ 的答案,不妨从上帝眼光审视一下就能发现仅有 $S$ 与 $T$ 点的度数为奇数,其余点均为偶数。

事实上走过的图肯定是个 $S\rightarrow T$ 的欧拉路径,为了方便我们将 $(S,T)$ 的边假设连上,那么每个点的度数均为偶数。

那么我们的问题变为现在有度数为奇/偶的点,需要再连边使得每个点度数均为偶数且图联通,求最小化边权和。

由于 $w(i,j)=|i-j|$ ,那么肯定选 $w=1$ 的路径是最优的,那么我们仅考虑选取 $w=1$ 的路径。

假设当前奇数点共 $2k$ 个,考虑前缀中有 $x$ 个奇数点( $x$ 为奇数),显然 $x,2k-x$ 均为奇数,且肯定有一条从左侧中连向右侧的边,那么必定存在从 $x\rightarrow x+1$ 的边,不妨先仅选取 $x\rightarrow x+1$ 。

我们会选择 $k$ 条边,并且现在的图已经不存在奇数点,但是图不连通。

和刚才类似,如果我们在联通块之间连边,那么他们之间肯定又会存在一条新边。

换句话说,如果两个联通块之间连一条边,那么肯定会连相同的第二条边。

那么我们仅需要考虑连一条边,这个过程相当于求 $MST$ 。

对上述过程暴力维护,时间复杂度 $\mathcal O(n^2\log n)$ 。

code

posted @ 2021-03-11 08:21  siruiyang_sry  阅读(114)  评论(0编辑  收藏  举报