题目链接

看到严格选 \(k\) 个,不难想到 WQS二分。定义 \(f(x)\) 为分成 \(x\) 段,最多有多少个超过 \(S\) 的。然后你会发现他不是凸的。因为他有很多平段,比如把两个很小的合并不改变答案。

换个方向? 考虑定义 \(f(x)\) 为有 \(x\) 个超过 \(S\) 的段,最多有多少个段。然后发现这个函数看起来是凸的,你可以先二分有 \(x\) 个超过 \(S\) 的段,然后 WQS 二分求出 \(f(x)\) 的值,复杂度 \(O(nlog^2n)\)。

但是真的要套两层二分吗?考虑把两层二分合起来。我们要求的是最小的 \(x\),满足 \(f(x)\ge k\)。先二分 \(f(x)\) 的斜率,dp时同时记录下满足段数最多的前提下 最少 有 \(p\) 个超过 \(S\) 的段,然后看一下 \(f(p)\) 的大小和 \(k\) 作比较,就把原来的外层二分去掉了。

要注意的是, \(f(x),f(x+1),f(x+2)\) 可能三点共线,所以 \(p\) 不一定是最前面的大于等于 \(k\) 的地方。最后求答案时要算的是 \(p+\lfloor(f(x)-k)/r\rfloor\),\(r\) 为二分出来的斜率。答案要对 \(k\) 取 min。

凸性的证明?

感性理解的话,每次减少的段一定是越来越大的,所以他是凸的

下面搬运官方题解。

要证明 \(2f(x+1)\ge f(x)+f(x+2)\)

首先可以发现,dp 时选的合法段一定是极短的,也就是无论删除左端点还是右端点,都会使其不合法。

设 \(f(x)\) 选择了 \(a_1\le a_2\cdots\le a_x\),\(f(x+2)\) 选择了 \(b_1\le b_2\cdots\le b_{x+2}\) 为右端点的极短合法段。设 \(a_0=b_0=0,a_{x+1}=b_{x+3}=n+1\)。一定存在 \(i\) 满足\(a_i\le b_i\le b_{i+1}\le a_{i+1}\),取 \(a_1\cdots a_{i-1},b_{i+1}\cdots b_{p+2}\) 以及 \(b_1\cdots b_i,a_i\cdots a_p\),这是 \(f(p+1)\) 的两个构造,他们加起来至少是 \(f(x)+f(x+2)\),得证。

[ARC168E] Subsegments with Large Sums的更多相关文章

  1. E. Change-free

    Student Arseny likes to plan his life for n days ahead. He visits a canteen every day and he has alr ...

  2. 《Complete Guide to Value Investing》读书总结

    大好的周末,决定写一篇读书笔记.:) 最近读了一些股票估值以及价值投资相关的文章和书籍.今天将其中的一本做一些笔记以及简单的总结. 该书名为<Complete Guide to Value In ...

  3. 每日英语:Got 5 Minutes? 'Flash Fiction' Catches On

    Chinese author Lao Ma has a simple approach to his short stories: In the face of life, everything is ...

  4. NCE3

    Lesson1  A puma at large Pumas are large, cat-like animals which are found in America. When reports ...

  5. New Concept English three(14)

    06:55:29 32w/m 45words. There was a time when the owners of shop and businesses in Chicago had to pa ...

  6. [wirtting] top01 independent

    Do you agree or disagree with the following statement? At universities and colleges, sports and soci ...

  7. Lesson2 Thirteen equals one

    ​ Lesson2 Thirteen equals one equal ['i:kwəl] v. 等于 He equaled the world record. Nobody equals him i ...

  8. A Child's History of England.14

    At first, Elfrida possessed great influence over the young King, but, as he grew older and came of a ...

  9. [翻译]MapReduce: Simplified Data Processing on Large Clusters

    MapReduce: Simplified Data Processing on Large Clusters MapReduce:面向大型集群的简化数据处理 摘要 MapReduce既是一种编程模型 ...

  10. codeforces 477A A. Dreamoon and Sums(数学)

    题目链接: A. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input ...

随机推荐

  1. 细数2019-2023年CWE TOP 25 数据,看软件缺陷的防护

    本文分享自华为云社区<从过去5年CWE TOP 25的数据看软件缺陷的防护>,作者:Uncle_Tom. "以史为鉴,可以知兴替".CWE 已经连续5年发布了 CWE ...

  2. WPF学习 - 闭坑(持续更新)

    坑1:自定义控件设计原则: 既然称之为控件,那么就必定有界面与行为两部分. 界面就是展示给用户看的,用于承载类的属性.方法.事件等. 行为就是类的方法,以及这些方法需要用到的属性.字段等. WPF设计 ...

  3. 用OLED屏幕播放视频(3): 使用cuda编程加速视频处理

    下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这是此系列文章的第3篇, 主要总结和记录了如何 ...

  4. Content Security Policy(CSP)应用及说明

    什么是CSP CSP全称Content Security Policy ,可以直接翻译为内容安全策略,说白了,就是为了页面内容安全而制定的一系列防护策略. 通过CSP所约束的的规责指定可信的内容来源( ...

  5. ionic app调试问题

    以下是一些ionic app在模拟器中的调试问题: 1. CORS问题 官方原文以及解释:Handling CORS issues in Ionic 国内翻译:彻底解决Ionic项目中的跨域问题 2. ...

  6. Aho-Corasick 算法 AC自动机实现

    敏感词过滤在社区发帖.网站检索.短信发送等场景下是很常见的需求,尤其是在高并发场景下如何实现敏感词过滤,都对过滤算法提出了更高的性能要求,Ahocorasick算法能够实现毫秒级的万字过滤匹配,能够很 ...

  7. C#开源且免费的Windows桌面快速预览神器 - QuickLook

    前言 今天给大家推荐一款由C#开源且免费的Windows桌面快速预览神器:QuickLook. 工具介绍 QuickLook是一款在Windows操作系统上的实用工具,它提供了一种快速预览文件内容的方 ...

  8. DB2---创建返回结果集的函数

    在数据验证中,经常遇到需返回结果集的操作,故整理一个返回结果集的DB2函数,便于后期查阅 1.准备测试表 /*创建测试表:设置结果集的属性为表字段*/ CREATE TABLE Test_EXWAST ...

  9. C++ STL快速入门方法

    在数月之前的机试中第一次体验到STL的威力,因为自己本来一直在用C语言做开发,很多数据结构都是自己造的,比如链表.队列等,第一次接触C++ STL后发现这些数据结构都已经给我提供好了,我直接拿去调用就 ...

  10. Convolutional neural network (CNN)–extreme learning machine (ELM)

    1. 介绍 论文:(2020)Neural networks for facial age estimation: a survey on recent advances. 地址: http://li ...