Timeline

08:00-08:10

通看一遍题目,A 像性质题,B 6,7 点感觉可以贪(?,剩下的感觉???,C 感觉暴力写起来很麻烦,D 无头绪只会暴力,先把 A 暴力写了

08:10-08:40
A 性质没想出来,B 贪想到了一个细节导致代码好难写(也许根本就没法贪)

08:40-09:00

把 C 的部分分和 D 的暴力打上了

09:00-09:30

把 C 的暴力打上了,还顺便把部分分的错找出来了

09:30-09:55

把 B 的暴力打上了,开始罚坐

10:30-11:00
D 写了一个 O(qnmlog⁡m)\mathcal{O}(qnm\log m)的 3,4,5,但是常数巨大(或者算错了)极限数据测了一下会 G (希望是随机)

11:30

D 砍去了 log⁡\log,常数大大减小

Result

70+20+20+5070+20+20+50,B 贪心写炸了 −20-20,C 部分分挂了 −20-20。

Summary

  1. 得加快点写暴力的速度。

  2. 先想好怎么写再去写。

Problem

T1

TT 组询问,每次给定 n=∏picin=\prod p_i^{c_i},其中 pip_i 为互异的质数,求 gcd⁡ci\gcd c_i。

n≤1018,T≤104n\leq 10^{18},T\leq 10^{4}

Solution

枚举 gcd⁡\gcd 为 kk,kk 为 log⁡\log 级,若 nk\sqrt[k]{n} 为整数则合法。

WHY?

n=p1c1p2c2…pqcq=(p1c1kp2c2k…pqcqk)kn=p_1^{c_1}p_2^{c_2}\dots p_q^{c_q}=(p_1^{\frac{c_1}{k}}p_2^{\frac{c_2}{k}}\dots p_q^{\frac{c_q}{k}})^k

若 kk 为 gcd⁡ci\gcd c_i,则有 cik∈Z\frac{c_i}{k}\in \mathbb{Z},又因为 pi∈Zp_i\in \mathbb{Z},故 p1c1kp2c2k…pqcqk∈Zp_1^{\frac{c_1}{k}}p_2^{\frac{c_2}{k}}\dots p_q^{\frac{c_q}{k}}\in \mathbb{Z}。

时间复杂度 O(Tlog⁡2n)\mathcal{O}(T\log^2 n)。

T2

nn 天要拿 mm 件包裹,每个包裹第 lil_i 天到货,第 rir_i 天之后过期,一次最多拿 kk 件,一天内可往返多次,第 ii 天往返一次的代价为 cic_i,最小化代价。

n,m≤4000,∀i≠j,li≤lj→ri≤rjn,m\leq 4000,\forall i\neq j,l_i\leq l_j\rightarrow r_i\leq r_j

Solution

排遍序,设 di,jd_{i,j} 为 min⁡k=ijck\min_{k=i}^{j} c_k,fif_i 为拿走前 ii 个的最小代价,故枚举之前的未过期的包裹,注意 kk 的限制:

fi=min⁡fj−1+dli,rj←max⁡(1,i−k+1)≤j≤i,li≤rjf_i=\min f_{j-1}+d_{l_i,r_j}\leftarrow \max(1,i-k+1)\leq j\leq i,l_i\leq r_j

时间复杂度 O(n2+m2)\mathcal{O}(n^2+m^2)。

T3

n×nn\times n 的棋盘,其中 i mod dx=0i\bmod d_x=0 且 j mod dy=0j\bmod d_y=0 的点为坏点,一个点能移动到另一个点,当且仅当两点所成矩形中不含坏点,代价为矩形中数字最小值,求 (1,1)(1,1) 到每个点的代价。

n≤300n\leq 300

Solution

对于每个极大互通子矩阵内枚举分界点,对于分出的四个块建立“进点”和“出点”,然后跑 Dijkstra。

时间复杂度 O(n2log⁡n)\mathcal{O}(n^2\log n)。

T4

给出长度为 nn 的序列 aia_i,qq 次询问 [l,r][l,r] 内有多少个子序列的和为 xx。

n,q≤105,1≤ai,x≤300n,q\leq 10^5,1\leq a_i,x\leq 300

Solution

用猫树离线处理,对于当前的 l,rl,r,先预处理出 midmid 两边每个位置的背包信息,对于每个询问,若 li≤mid≤ril_i\leq mid\leq r_i,则合并这两个背包得到答案,否则划分给 [l,mid][l,mid] 或 [mid+1,r][mid+1,r] 处理。

时间复杂度 O(nmlog⁡n+q(m+log⁡n))\mathcal{O}(nm\log n+q(m+\log n))

满分做法过于人类智慧,不作解释。