[ARC168E] Subsegments with Large Sums
题目链接
看到严格选 \(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的更多相关文章
- E. Change-free
Student Arseny likes to plan his life for n days ahead. He visits a canteen every day and he has alr ...
- 《Complete Guide to Value Investing》读书总结
大好的周末,决定写一篇读书笔记.:) 最近读了一些股票估值以及价值投资相关的文章和书籍.今天将其中的一本做一些笔记以及简单的总结. 该书名为<Complete Guide to Value In ...
- 每日英语: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 ...
- NCE3
Lesson1 A puma at large Pumas are large, cat-like animals which are found in America. When reports ...
- 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 ...
- [wirtting] top01 independent
Do you agree or disagree with the following statement? At universities and colleges, sports and soci ...
- Lesson2 Thirteen equals one
Lesson2 Thirteen equals one equal ['i:kwəl] v. 等于 He equaled the world record. Nobody equals him i ...
- 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 ...
- [翻译]MapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large Clusters MapReduce:面向大型集群的简化数据处理 摘要 MapReduce既是一种编程模型 ...
- codeforces 477A A. Dreamoon and Sums(数学)
题目链接: A. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input ...
随机推荐
- Geotools实现shape文件的写入
众所周知Geotools作为开源的Java GIS三方库,已经成为GIS服务器端的主流开源库,其功能非常强大,涉及到GIS业务的方方面面,其中就包括GIS数据的读写,今天小编就借助Geotools来实 ...
- AI绘画Stable Diffusion实战操作: 62个咒语调教-时尚杂志封面
今天来给大家分享,如何用sd简单的咒语输出好看的图片的教程,今天做的是时尚杂志专题,话不多说直入主题. 还不会StableDiffusion的基本操作,推荐看看这篇保姆级教程: AI绘画:Stable ...
- java与es8实战之三:Java API Client有关的知识点串讲
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本篇是<java与es8实战>系 ...
- 【krpano】 ASP浏览量插件
简述 这是一个Asp版krpano统计访问量案例,运用asp代码控制增值来实现的功能:现将案例上传网站供大家学习研究,希望对大家有所帮助. 功能 用户进入网页增值或刷新增值. 案例展示 所有文件如下图 ...
- MySQL实战实战系列 06 全局锁和表锁 :给表加个字段怎么有这么多阻碍?
今天我要跟你聊聊 MySQL 的锁.数据库锁设计的初衷是处理并发问题.作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则.而锁就是用来实现这些访问规则的重要数据结构. 根据 ...
- 使用 gopkg.in/yaml.v3 解析 YAML 数据
YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化格式,常用于配置文件和数据交换.在 Go 语言中,你可以使用 gopkg.in/yaml.v3 包来解析和生成 ...
- 真·Redis缓存优化—97%的优化率你见过嘛?
本文通过一封618前的R2M(公司内部缓存组件,可以认为等同于Redis)告警,由浅入深的分析了该告警的直接原因与根本原因,并根据原因提出相应的解决方法,希望能够给大家在排查类似问题时提供相应的思路. ...
- How to parse OR AND within text
假设你有一行 String condition = "A or B and C"; 语句,请问怎么做才能变成一行真正的逻辑表达式(能在计算机中运行计算)? Resolution 声 ...
- C++中::和:, .和->的作用和区别
符号::和:的作用和区别 ::是作用域运算符,A::B表示作用域A中的-名称B,A可以是名字空间.类.结构: 类作用域操作符 "::"指明了成员函数所属的类.如:M::f(s)就表 ...
- Linux下安装MySQL问题及报错解决
前言: 在Linux环境下,安装MySQL服务 环境: 虚拟机CentOS7 \-----------------------------------------------\ 流程: 确保mysql ...