Pigeon's Blog

返回列表

ICPC2023西安站

2026-08-27

ICPC2023西安站

A

\quad 针对 rad(i)\text{rad}(i) 的定义入手:

Ai+r−Ai−r=kr+bA_{i+r}-A_{i-r}=kr+b
\quad 我们试图把式子中含 i+ri+r 和 i−ri-r 的部分统一成同一个形式:
2×(Ai+r−Ai−r)=2kr+2b2×(Ai+r−Ai−r)=k(i+r−i+r)+2b2×(Ai+r−Ai−r)=k(i+r−i+r)+2b2Ai+r−k(i+r)−2Ai−r+k(i−r)=2b2 \times (A_{i+r}-A_{i-r})=2kr+2b\\2 \times (A_{i+r}-A_{i-r})=k(i+r-i+r)+2b\\2 \times (A_{i+r}-A_{i-r})=k(i+r-i+r)+2b\\2A_{i+r}-k(i+r)-2A_{i-r}+k(i-r)=2b
\quad 令 Ci=2Ai−kiC_i=2A_i-ki ,则有:
Ci+r−Ci−r=2bC_{i+r}-C_{i-r}=2b
\quad 接下来令 Di=Ci−Ci−1D_i=C_i-C_{i-1} ,则 rad(x)\text{rad}(x) 满足: ∀1≤r≤rad(x)\forall 1 \le r \le \text{rad}(x) , ∑i=x−r+1x+rDi=2b\sum\limits_{i=x-r+1}^{x+r} D_i=2b 。

\quad 当 r=1r=1 时: Dx+Dx+1=2bD_x+D_{x+1}=2b 。

\quad 当 r>1r>1 时有: Dx−r+1+Dx+r=0D_{x-r+1}+D_{x+r}=0 。不难发现 x−r+1x-r+1 与 x+rx+r 奇偶不同,则令 Gi=(−1)iDiG_i=(-1)^iD_i ,则有 Gx−r+1=Gx+rG_{x-r+1}=G_{x+r} 。

\quad 当询问 rad(x)\text{rad}(x) 时,应先判断 Dx+Dx+1=2bD_x+D_{x+1}=2b 是否成立,若不成立则 rad(x)\text{rad}(x) 自然为0,若成立则找到最大的 lenlen 使逆序段 [x−len+1,x][x-len+1,x] 与正序段 [x+1,x+len][x+1,x+len] 完全相同。考虑用二分答案+哈希来解决这个问题。

\quad 因此,需要维护一个数据结构,要求单点修改差分序列以及维护正序、逆序的区间哈希值,可以用线段树实现,单词修改的时间复杂度为 O(logn)O(logn),单次查询的时间复杂度是 O(log2n)O(log^2n) 。

E

\quad 竞赛图中离心率 ≤2\le 2 的点通常称为king。另记:

N−(x)=u:u→xN ^−(x)={u:u→x}
\quad 即所有“打败” xx 的顶点集合。

\quad 先考虑存在点的出度为 n−1n-1 的情况,这种情况下king只可能是那个出度为 n−1n-1 的点,因此可以直接输出 Not found。

\quad 排除掉上述的情况,先试图证明竞赛图一定有至少一个king。考虑用数学归纳法证明。

\quad 当竞赛图只有三个点时,只存在 a->b->c->a 和 a->c a->b b->c 两种情况,都存在king。

\quad 当竞赛图有 kk 个点且存在king时,设其中一个king为 aa , aa 能一步到达的点集为 BB ,只能两步到达的点集为 CC 。现在考虑加入一个新的点 dd ,分几种情况讨论:

\quad 1.a->d ,显然 d∈Bd\in B ,在这个 k+1k+1 个点的竞赛图中 aa 仍然是king。

\quad 2. d->a且 ∃ b∈B\exist\ b \in B 使得 b->d ,则 aa 可以通过 bb 两步到达 dd ,即 d∈Cd \in C ,在这个 k+1k+1 个点的竞赛图中 aa 仍然是king。

\quad 3. d->a且 ∀ b∈B\forall\ b \in B 使得 d->b ,则令 B′=B⋃{a}B'=B\bigcup {a} , C′=CC'=C ,dd 作为这个 k+1k+1 个点的竞赛图的king。

\quad 因此可以证明:竞赛图一定存在一个king。

\quad 接下来证明竞赛图中出度最大的点一定是king,考虑用反证法证明:设竞赛图里出度最大的点为 xx ,若存在点 yy 使得 xx 无法两步之内到达 yy ,则 yy 一定可以直接到达 xx 以及 xx 可以直接到达的点,即 yy 的出度至少为 xx 的出度加一,这样 xx 就不是出度最大的点了,矛盾。即证得竞赛图中出度最大的点一定是king。

\quad 因为找到的king的出度一定不为 n−1n-1 ,N−(x)N^-(x) 一定不为空,接下来证明:由 N−(x)N^-(x) 中的点构成的竞赛子图中的king一定也是整张图的king。不妨设 yy 为 N−(x)N^-(x) 中的点构成的竞赛子图中的king,显然 yy 一定能在两部之内到达 N−(x)N^-(x) 中的点,且 yy 可以直接到达 xx ,而剩余的点都可以通过 y->x->z 来两步到达。因此 yy 也是整张图的king。

\quad 令 x′=yx'=y ,以此法还能再找到一个king zz ,因为 z∈N−(y)z \in N^-(y) 而 y∈N−(x)y \in N^-(x) ,所以 zz 和 xx 一定不是同一个点,这样就找到了三个互不相同的king。

G

\quad 先对 nn 进行质因数分解:

n=a1d1×a2d2×a3d3×...×amdmn=a_1^{d_1} \times a_2^{d_2} \times a_3^{d_3} \times ... \times a_m^{d_m}

\quad 再将 pp 和 qq 以同样的方式表示:

p=a1b1×a2b2×a3b3×...×ambmq=a1c1×a2c2×a3c3×...×amcmp=a_1^{b_1} \times a_2^{b_2} \times a_3^{b_3} \times ... \times a_m^{b_m}\\q=a_1^{c_1} \times a_2^{c_2} \times a_3^{c_3} \times ... \times a_m^{c_m}

\quad 显然 bi+ci≤dib_i+c_i \le d_i ,且有:

r=a1b1−c1×a2b2−c2×a3b3−c3×...×ambm−cmr=a_1^{b_1-c_1} \times a_2^{b_2-c_2} \times a_3^{b_3-c_3} \times ... \times a_m^{b_m-c_m}

\quad 可以注意到 bi−cib_i-c_i 是独立的,且 bi−ci∈[−di, di]b_i-c_i \in [-d_i,\ d_i] ,可以在这个区间内任取,由乘法原理可得, rr 的不同值个数为 ∏i=1m2di+1\prod\limits_{i=1}^m2d_i+1 ……吗?

\quad 显然不是,因为有 p≤qp\leq q 的限制存在,应该先排除 p=qp=q 的情况再加上剩下情况数的一半,答案为: (∏i=1m2di+1)+12\frac{(\prod\limits_{i=1}^m2d_i+1)+1}{2} 。

H

\quad 假设第 ii 名选手一路晋级到最后,记 Li,jL_{i,j} 为前 jj 场比赛选手 ii 可能遇到的对手所处在的区间左端点,同理有 Ri,jR_{i,j} ,不难发现,选手 ii 能打赢前 jj 场当且仅当他是 [Li,j,Ri,j][L_{i,j},R_{i,j}] 中级别最高的那个。为使选手尽可能赢更多的比赛,我们要将区间外级别小于 aia_i 的选手的级别与区间内级别大于 aia_i 的选手的级别交换。交换能否成功要看两点:交换次数是否充足以及可供交换的人是否充足。

\quad 考虑级别从小到大处理,用树状数组来维护需要交换以及可供交换的选手数量即可,时间复杂度为 O(2nn2)O(2^nn^2) 。

N

\quad 纯粹的模拟题,注意实现细节即可。