省选测试39

A.老洪的遍历

将题中给出的贡献式转化,得到

\(\frac{B_iB_j}{2}(\frac{1}{A_j}-\frac{1}{A_i})\)

发现将每个点扔到二维平面,坐标为\((B_i,\frac{B_i}{A_i})\)

那么贡献就是\(i\)\(j\),原点\(O\)三点有向三角形的面积

所以求一个凸包就是答案了

B.老洪的神秘操作

首先一个很常用的套路是转化为等差数列,每次挑选两个位置,\(+/-\)相同的数值

然后发现先将\(1,6\),\(2,5\),\(3,4\)这样的数对配对一定不劣

剩下了一部分数,这些数显然能划分成7的倍数的组数越多越好

所以考虑一个dp, \(dp[i][j][k][l]\)表示用了\(i\)个第一个剩下的数,\(j\)个第二个剩下的数,\(k\)个第三个剩下的数,此时无法划分成整组,剩下的一组值为\(l\)的最大划分组数

转移枚举当前这次用了第几种数就可以了, 第一维滚动

C.老洪的数组

考虑最裸的\(20nm\)暴力,发现可以分块

设块长为\(k\)

对于询问分块,每次到一个新块就暴力\(20*n\)去求出每个位置的答案, 这部分复杂度是\(20*n*\frac{m}{k}\)

然后对于每次询问,暴力去扫当前块内对其有贡献的修改,这部分复杂度是\(m*k\)

所以计算得\(k\)最优为\(\sqrt {20n}\)

此时复杂度为\(\sqrt {20n} * m\)

posted @ 2021-03-16 06:39  HISKrrr  阅读(43)  评论(0编辑  收藏  举报