被迫营业.jpg

赛场上和 xgy 开黑成功过了 66 题,上了大分十分开心。

D Coprime 2

考虑质因数分解,对每个数分解,对质数求并。

那么考虑每一个 ii,同样质因数分解即可。

时间复杂度 O(NN)O(N\sqrt{N})。

E Chain Contestant

设原先的字符串为 tt。

设 fi,S,jf_{i,S,j},表示前 ii 个里面某些比赛选了没选的状态为 SS,最后一个选的比赛为 jj。

分类讨论,如果 ti=jt_i=j 并且 SS 里面包含 tit_i,考虑钦定取 tit_i,那么 fi,S,ti=fi,S,ti+fi−1,S,tif_{i,S,t_i}=f_{i,S,t_i}+f_{i-1,S,t_i},同时对于一个不等于 tit_i 的且在 SS 中的 ll,fi,S,ti=fi,S,ti+fi−1,S−2ti,lf_{i,S,t_i}=f_{i,S,t_i}+f_{i-1,S-2^{t_i},l}。

紧接着考虑钦定不选 tit_i,也就是 fi,S,j=fi,S,j+fi−1,S,jf_{i,S,j}=f_{i,S,j}+f_{i-1,S,j}。

最后对所有的 fn,S,jf_{n,S,j} 求和即可。

时间复杂度 O(n2∣Σ∣∣Σ∣)O(n2^{|\Sigma|}|\Sigma|)。

F Dist Max 2

xgy KDT 草过去了并不讲 KDT 做法。

以下文字是 xgy 写的:

首先我们看看这个奇怪的距离:min⁡(∣xi−xj∣,∣yi−yj∣)\min (|x_i - x_j| , | y_i - y_j |)。

假设这个距离 ≥K\ge K。

是不是意味着 ∣xi−xj∣≥K| x_i - x_j | \ge K 并且 ∣yi−yj∣≥K| y_i - y_j | \ge K。

我们考虑二分这个 KK,那么我们怎么判断这个 KK 是否满足条件呢?

如果一个 KK 能满足条件,我们一定能找到一个点 (xi,yi)(x_i,y_i) ,如果 yy 最小的那个点的 xx 坐标满足 xi−x≥Kx_i-x \ge K ,即 xi−K≥xx_i - K \ge x, 那么这个最小的 yy 一定满足 yi−y≥Ky_i-y\ge K,即 yi−K≥yy_i-K\ge y,或这最大的 yy 坐标大于等于 yi+Ky_i+K。

如果你按 xx 排序,这个判断过程可以做到 O(n)O(n) 。