CF1446

Posted soulist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF1446相关的知识,希望对你有一定的参考价值。

CF1446

题目都很有趣。

A

假设存在一个合法的,那么直接选。

否则所有数都小于 (frac{W}{2}),那么按任意顺序贪心选都是对的。

B

类比 LCS,设 (f_{i,j}) 表示 ([?,i],[?,j]) 的最大答案。转移是 naive 的。

C

观察:二进制最高位相同的会连在内部,所以最高位相同的 (>2) 的集合最多保留一个。

枚举保留谁,让内部生成树,不难发现最高位小于其的可以选一个,大于的每个可以选一个,然后递归,复杂度 (mathcal O(nlog wsim nlog^2 w))

D

观察:

  • 当存在两个出现次数最多的元素时答案为 ([1,n])
  • 否则最多的元素唯一,设为 (t),假设区间 ([l,r])(t) 不是出现次数的元素或之一,那么 ([l,r]) 一定不是答案。

枚举另一个出现次数最多的元素,设为 (b),将 (b) 出现的位置全设为 (-1),最多的元素全设为 (1),其余元素为 (0),那么区间合法的必要条件是权值和为 (0),这样可以更新一次答案。

观察:假设区间权值和为 (0) 但存在一个颜色出现次数更多,那么一定存在更大的答案。

于是得到了一个 (mathcal O(ccdot n)) 的做法。

考虑优化,对于出现次数大于 (sqrt{n}) 的元素考虑暴力做此算法。

对于出现次数小于 (sqrt{n}) 的元素,枚举区间内负数的权值和为 (w),那么 (w<sqrt{n}),对于此 (w) 暴力预处理 (t) 中所有合法的段 ([l_i,r_i])

对于出现次数满足 (wle c_i<sqrt{n}) 的元素暴力枚举每个段 ([L,R]),找到合法的最优段即可(要分类讨论)

这里注意到假设颜色 (i)(c) 个颜色,那么对复杂度的贡献为 (c^2),取 (c=sqrt{n}) 时得最大复杂度为 (mathcal O(frac{n}{sqrt{n}} imes n))(mathcal O(n^{1.5}))

E

好奇怪.svg

F

咕咕咕

以上是关于CF1446的主要内容,如果未能解决你的问题,请参考以下文章

CodeForces - Problem 1446 - Knapsack - 思维

@@P1446 [HNOI2008]Cards

luogu P1446 [HNOI2008]Cards

LeetCode --- 1446. Consecutive Characters 解题报告

LeetCode --- 1446. Consecutive Characters 解题报告

P1446 [HNOI2008]Cards