CTT 2018~2019(北大集训)随机记录
随机写写,水题就不记了
CTT 2018
D1T2 esperar
把 \(b_i\) 变成 \(b_i/d_i\),就变成了 \(\prod d_i\ge \prod b_i\) 的个数。
发现 \(\prod d_i>\prod b_i\) 和 \(\prod d_i<\prod b_i\) 是一一对应的。于是只要数总方案数和 \(\prod d_i=\prod b_i\) 的方案数即可。
D2T1 宝石游戏
如果没有修改,长链剖分就可以 \(O(n)\) 做了。
有修改的话,考虑时间分块,每 \(\sqrt n\) 次修改长剖预处理一次,询问就对 \(\sqrt n\) 个被改的地方暴力一下。
D2T2 面国建设
考虑减少哪些能用的矩形。
如果有两个 \(a\times b,a\times c\) 可以变成 \(a\times (b+c-1),1\times a\)。
同理如果有两个 \(1\times a,1\times b\) 可以变成 \(1\times (a+b-1),1\times 1\)。
所以最终方案肯定是一堆 \(1\times 1\) 加上一些长宽都没有重复的大矩形。
(下面把周长除以二)
每次加一个矩形会让 \(S+=1,C+=2\),不变量是 \(2S-C\)。
于是设 \(f_i\) 表示 \(2S-C=i\) 方案的最小周长,枚举 \(\sqrt S\) 种矩形的可能的宽边长,根据上面的分析这种宽边的矩形最多取一个,简单 dp 即可。复杂度 \(O(n\sqrt n)\)。
D3T2 I'm always close to you
不太会
D4T1
还不会

浙公网安备 33010602011771号