关于ABC F
  • 板块学术版
  • 楼主lzm0107
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/8 00:43
  • 上次更新2024/9/8 12:07:56
查看原帖
关于ABC F
555994
lzm0107楼主2024/9/8 00:43

我的思路如下:

先二分第一问答案。

check 可以通过将 AiA_i 分成大于等于 midmid 的和小于 midmid 的两类。

对于每一个极长的 AiA_i 小于 midmid 的子段,设子段左端点为 ii,右端点为 jj,那么可以贪心地合并,求出合并次数。将所有子段的次数合起来,与 NKN-K 比较。

贪心的正确性可以感性理解,如果 AiA_iAi1A_{i - 1} 合并,那么子段左边仍然是一个大于等于 midmid 的值,而 Ai+1A_{i+1} 的值没有改变。

如果将 AiA_iAi+1A_{i+1} 合并,新的值则会更大,显然不会比前一种方法更劣。

得到第一问的解之后,通过倍增得出第二问的解。

我认为该方法的时间复杂度为 O(nlog(nV))\Omicron(n\log (nV)) 的。

目前的问题是,在所有 AiA_i 都小于 midmid 时,无法知道从哪个位置进行贪心。

求解答。

2024/9/8 00:43
加载中...