Examples

THUSC2022 / PKUSC2022 做题记录

暂时咕了,一定会更完的!

THUSC2022 T1

签到。

直接倒着 dp,令 \(f_{i,j}\) 表示在位置 \(i\),走了 \(j\) 分钟且还没下大雨,到终点淋的最少雨数,转移一步直接分讨会不会下大雨,随便拆式子算算就好了。(显然下大雨之后会走二类权值到终点的最短路)

THUSC2022 T2

好像是简单题,可惜我不会。

\(f(l,r)\) 为使用区间 \([l,r]\) 替换后的最大权值,那么可以证明 \(l\) 关于 \(r\) 的最优决策具有单调性。

然后就决策单调性分治,每次在值域线段树内二分计算权值即可,指针暴力移动是 \(O(n\log n)\) 的。

复杂度 \(O(n\log^2 n)\)

THUSC2022 T3

\(X\) 为根搜一个 bfs 树,那么横叉边只会连接相邻层。

令深度小于等于 \(S\) 的为“好”点,我们给边定向时令好点之间深度深向深度浅连边,坏点向好点连边,坏点之间的连边让左部连向右部。

我们随机抽查 \(O(\frac{n}{S})\) 个点,称一个点是“可接受的”当且仅当它既有入度又有出度,可以发现从“可接受的”点出发,只需要沿着出边走 \(O(S)\) 步即可到达 \(X\) 点。

而可以发现,除非全树深度小于等于 \(S\) 且叶子数量巨大,“可接受的”点数量总是 \(O(S)\) 级别的,而抽查 \(O(\frac{n}{S})\) 个点可以期望抽到 \(O(1)\) 个可接受的点。

而上面那种 Corner Case 可以在抽查完点之后任选一个点走 \(O(S)\) 步,显然可以到达 \(X\)

平衡一下即可做到 \(O(\sqrt n)\) 的询问次数。

THUSC2022 T4

还不太会单 \(\log\)

\(\log\) 做法就是重链剖分,重链上的每个哈希值维护一个动态开点线段树,查询的时候链之间暴力 KMP 即可。

PKUSC2022 D1T1

首先考察单个变量的随机过程。

我们发现这个随机过程由很多个形如这样的过程拼接而成:

\(i\) 出发,跳了若干步,中途始终没有越过 \(i\),最后一步到了 \(i+k\)

\(f_{i,k}\) 表示这个事件的期望步数,枚举其跳的第一步,可以发现变成了这样的过程:

\(i\) 出发,跳了若干步,中途始终没有越过 \(i+j\),最后一步到了 \(i+k\)

\(g_{i,j,k}\) 表示这个事件的期望步数,容易列出 \(f,g\) 的递推。

\(g\) 全部用 \(f\) 表示,可以在 \(O(nm^3)\) 解出所有 \(f\)

而两个变量可以直接 dp,令 \(h_{i,j}\) 为第一个为 \(i\),第二个为 \(i-j\) 的答案,然后随便转移一下就好了。

复杂度 \(O(nm^3)\)

PKUSC2022 D1T2

PKUSC2022 D1T3

PKUSC2022 D2T1

为什么,大家,都切了。。。

两种做法。

枚举 \(f(x_i)=g(y_i)=w_i\)\(w\) 集合,可以发现本质不同的贡献只有 \(O(p(n))\) 种。

此时 \(f,g\) 两个函数就是独立的了,只需计算 \(\forall_{i} f(x_i)=w_i\) 的概率即可,列出式子:(令枚举的拆分数是 \(t_1,t_2,\cdots,t_k\)

\[[x^m]\prod_{i=1}^k(\sum_{j=1}^m\frac{x^jj^{t_i}}{j!})=[x^m]\prod_{i=1}^k(\sum_{j=1}^m\frac{x^j}{j!}\sum_{p=0}^{t_i}\begin{Bmatrix}t_i\\p\end{Bmatrix}j^{\underline p})\\=[x^m]\prod_{i=1}^k(\sum_{p=0}^{t_i}\begin{Bmatrix}t_i\\p\end{Bmatrix}\sum_{j=1}^m\frac{x^j}{(j-p)!})=[x^m]\prod_{i=1}^k(\sum_{p=0}^{t_i}\begin{Bmatrix}t_i\\p\end{Bmatrix}x^pe^x)\\=e^{kx}\prod_{i=1}^k(\sum_{p=0}^{t_i}\begin{Bmatrix}t_i\\p\end{Bmatrix}x^p) \]

暴力卷积即可,复杂度 \(O(p(n)n^2)\)

实际上这道题可以做到 \(O(n^6)\)。(标算做法)

构建一个左右均 \(n\) 个点的二分图(左右各代表 \(f,g\) 的输出),若 \(i\)\(j\) 连边则表示有约束 \(f(i)=g(j)\),一个连通块里的数必须相同。

枚举这个二分图的边数 \(e\)(叠合重边)以及连通块数量 \(c\),我们可以答案的式子:

\[\sum_{e=1}^n\sum_{c=1}^{2m}\begin{Bmatrix}n\\e\end{Bmatrix}e!f(m,e,c)m^{c-2m} \]

其中 \(f(m,e,c)\) 表示左右各 \(m\) 个点,\(e\) 条边,\(c\) 个连通块的二分图数量。

暂时咕了,之后再更。

PKUSC2022 D2T2

好像比较简单,竟然还是不会。

给每个颜色的边随机权值使得同颜色权值异或和为 \(0\),于是一条路径合法可以看作路径权值异或和为 \(0\)

做一遍树上前缀和,合法路径就是前缀和 \(v\) 相等的点之间的路径。

那么我们需要解决的问题就是点集直径,以及点集不过某个点的直径。

首先求出点集某一条直径,如果查询点不在这个点集上答案就是直径;否则我们以 \(s,t\) 为根各 dfs 一遍,求出每个子树的点集直径就可以得到删掉直径上点的答案了。

由于有很多个颜色,用一个虚树做一做,计算答案的时候再离线排序再树上并查集就好了。

复杂度 \(O(n\log n)\)

PKUSC2022 D2T3

posted @ 2022-05-26 20:46  xiaoziyao  阅读(1255)  评论(0)    收藏  举报