CF1208题解

C

\(\begin{aligned}\ 0 0 1 1\\ 0 0 1 1\\ 2 2 3 3\\ 2 2 3 3\\ \end{aligned}\)将每个四方格分别加上\(0,4,8,12\)

D

  • \(O(nlog^2n)\)从末尾开始计算,二分出结果,然后动态删掉,在处理倒数第二,可以用\(BIT\)

  • \(O(nlogn)\)找出最右边的\(0\),填\(1\),然后把右边的位置全部减\(1\);再找最右边的,为\(2\),依此类推

E

\(n\)\(w\)列的方格,每行有一可滑动矩阵,分别问每列最大值的最大值

  • \(2*l_i\le w\)则中间有一段是全部可以贡献的,线段树直接赋值,剩下的暴力

  • \(2*li>w\)直接暴力

\(O(nlogn)\)

F

求解\(max(a_i\mid(a_j\And a_k)),n\le 10^6,a_i\le 2\cdot 10^6\)

\(f(i)\)\(a_i\)子集含\(i\)的位置,保存最靠右的两个位置,预处理\(O(nloga)\)

枚举每个\(a_i\),贪心做最高位到最低位就行

G

神仙题

考虑把圆上的点转换到序列,假设选择\(x\)多边形,则踩的点为:\(\frac{0}{x},\frac{1}{x},...,\frac{x-1}{x}\)

  • 选择\(x\)之前,\(x\)的因子肯定被选了,因为\(x\)的点包括因子的点,故先选因子更优

  • 在选择\(x\)之前,\(x\)的倍数肯定不在里面,证明如上。则说明在没选择x倍数前,\(x\)的位置放在任何位置贡献都相同

  • 选择\(x\)的贡献为与\(x\)互质的数,否则根据\((1)\)可以约掉,也就是之前选过了,\(\varphi(x)\)

  • 筛出\(n\)以内的欧拉函数,排序一下选前\(k\)

  • 考虑\(k\le 2\),则选择的点里面肯定包括\(\frac{1}{2}\),则最后贡献加上\(2(0,\frac{1}{2})\)\(k=1\),答案为\(3\)

H

挖个坑

posted @ 2019-09-17 21:41  y2823774827y  阅读(153)  评论(0编辑  收藏  举报