被迫营业.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+fi1,S,tif_{i,S,t_i}=f_{i,S,t_i}+f_{i-1,S,t_i},同时对于一个不等于 tit_i 的且在 SS 中的 llfi,S,ti=fi,S,ti+fi1,S2ti,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+fi1,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(xixj,yiyj)\min (|x_i - x_j| , | y_i - y_j |)

假设这个距离 K\ge K

是不是意味着 xixjK| x_i - x_j | \ge K 并且 yiyjK| y_i - y_j | \ge K

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

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

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