T1 放羊的贝贝

题面巨大多恶心,实际上就是给你一堆矩形,叫你再画一个平行坐标系的折线包含这些矩形,周长最小。

显然统计一个 l,r,d,ul, r, d, u,表示现在包含的外接矩形,答案显然是 2(ud+rl)2(u - d + r - l)

T2 114514

诈骗,所有整数 ii 都满足,我打表了 1515 分钟才发现,以下为证明:

后面证明了下,可以证,移项过来分解个因数就行。

T3 1919810

dp,挺裸的,fi,jf_{i, j} 表示当前 19198101919810 序列到 ii 位,第 ii 位是 jj 的方案数,递推统计即可。

T4 逃亡的贝贝

二分答案,设当前答案为 midmid,设每条边原始的边权为 valival_i,每条边新赋一个边权为 viv_i 表示过这条边要几个药水。

vi={0,valimid1,114vali514mid<vali+,mid<114vali514v_i=\begin{cases} 0, val_i \le mid\\ 1, \lceil \frac {114val_i}{514} \rceil \le mid < val_i\\ +\infty, mid < \lceil \frac {114val_i}{514} \rceil \end{cases}

然后跑最短路,最后的 disndis_n 就是最少用的药水数量,只要小于等于 kk 就是一个合法的答案。

T5 炫酷反演魔术

和官方题解一样化出来这个式子:

T=1ndnϕ(d)μ(Td)i=1n[Tai]j=1n[Taj3]\sum_{T = 1} ^ n \sum_{d \mid n} \phi (d)\mu(\frac T d)\sum_{i = 1}^n[T \mid a_i] \sum_{j = 1}^n [T \mid a_j^3]

注意到 n300000n \le 300000,所以考虑 nlognn \log n 做法,

首先套板子出 μ\muϕ\phi 当然还有 prime\text{prime}

然后对于 dnϕ(d)μ(Td) \sum_{d \mid n} \phi (d)\mu(\frac T d)i=1n[Tai]\sum_{i = 1}^n[T \mid a_i] 都用调和级数做,大致代码是这样的:

	for (int i = 1; i <= n; i++) {
		for (int j = 1; i * j <= n; j++) {
			G[i * j] += phi[i] * mu[j];
			F1[i] += cnt[i * j];
			
		}
		int t = i, now = 1;
		for (int j = 1; pri[j] * pri[j] <= i; j++) {
			int x = 0;
			while (t % pri[j] == 0) {
				x++; t /= pri[j];
				if (x % 3 == 1) now *= pri[j];
			}
		}
		F3[i] = F1[now * t];
	}
	for (int T = 1; T <= n; T++)
		res += G[T] * F1[T] * F3[T];