AT_arc168_e [ARC168E] Subsegments with Large Sums 题解
题意:
&\text{给定长度为 } n \text{ 的数列 } \{a_i\} \text{ 和两个参数 } k, s \text{,将 } \{a_i\} \text{ 划分为 } k \text{ 段,最大化和} \geq s \text{ 的段数。} \\
&k\le n\le 2.5e5
\end{aligned}
\]
思路
有划分为恰好 \(k\) 段的限制,我们可以考虑wqs二分。发现直接将答案作为 \(y\) 轴是没有单调性的,因此只能换一下。
发现由于我们要让有贡献的段数尽量大,因此要让没有贡献的段长尽量小,因此没有贡献的段长直接设为1。
然后就又发现我们要让有贡献的段数尽量大,也要让有贡献的段长尽量小。
因此我们设 \(f(x)\) 为总贡献为 \(x\) 时有贡献的段的总长度。然后发现当可以划分的合法序列的段数大于 \(k\) 的时候,一定可以通过某种合并方式使得这个序列的划分的段数变为 \(k\) 同时仍然合法。
因此对于一个序列,其合法的限制条件就是 \(k\le x+n-f(x)\),即 \(\sum{r-l}\le n-k\)。
然后就将 \(sum{r-l}\) 作为 \(y\) 轴,二分的总贡献 \(x\) 作为 \(x\) 轴,直接wqs二分即可。
code
需要注意同样需要特殊判定多个点在同一条直线上的情况。
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=3e6+7;
int n,K,s,a[N],sum[N],pre[N];
pair <int,int> f[N];
bool check(int k){
for(int i=1;i<=n;i++){
f[i]=f[i-1];if(pre[i]>=1) f[i]=min(f[i],{f[pre[i]-1].first+i-pre[i]-k,f[pre[i]-1].second+1});
}
return (f[n].first+f[n].second*k<=n-K);
}
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>K>>s;
for(int i=1;i<=n;i++) cin>>a[i],sum[i]=sum[i-1]+a[i];
for(int i=1,loc=0;i<=n;i++) {while(sum[i]-sum[loc-1]>=s) loc++;pre[i]=loc-1;}
int l=1,r=n,ansk=l;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid)) ansk=mid,l=mid+1;
else r=mid-1;
}
int eee=check(ansk),x=min(f[n].second,K),y=f[n].first+f[n].second*ansk;
while(y+ansk<=n-K&&x<K) x++,y+=ansk;
cout<<x;return 0;
}
AT_arc168_e [ARC168E] Subsegments with Large Sums 题解的更多相关文章
- [CF1204E]Natasha,Sasha and the Prefix Sums 题解
前言 本文中的排列指由n个1, m个-1构成的序列中的一种. 题目这么长不吐槽了,但是这确实是一道好题. 题解 DP题话不多说,直接状态/变量/转移. 状态 我们定义f表示"最大prefix ...
- CF1656E Equal Tree Sums 题解
题目链接 思路分析 自认为是一道很好的构造题,但是我并不会做. 看了题解后有一些理解,在这里再梳理一遍巧妙的思路. 我们先来看这样的一张图: 我们发现当去掉叶子节点的父亲时,剩下树的价值和等于叶子节点 ...
- LuoguP4759 [CERC2014]Sums 题解
Content 给定 \(t\) 组数据,每组数据给定一个数 \(n\),判断 \(n\) 是否能够分解成连续正整数和,能的话给出最小数最大的方案. 数据范围:\(1\leqslant n\leqsl ...
- CodeForces 223C Partial Sums 多次前缀和
Partial Sums 题解: 一个数列多次前缀和之后, 对于第i个数来说他的答案就是 ; i <= n; ++i){ ; j <= i; ++j){ b[i] = (b[i] + 1l ...
- DP | Luogu P1466 集合 Subset Sums
题面:P1466 集合 Subset Sums 题解: dpsum=N*(N+1)/2;模型转化为求选若干个数,填满sum/2的空间的方案数,就是背包啦显然如果sum%2!=0是没有答案的,就特判掉F ...
- 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 ...
随机推荐
- 最新demo版 | 如何0-1开发支付宝小程序之小程序如何上线(四)
支付宝小程序开发 0-1 系列前三期详见: 最新demo版|如何0-1开发支付宝小程序之前期准备篇(一) 最新demo版 | 如何0-1开发支付宝小程序之如何调试小程序(二) 最新demo版 | 如何 ...
- kali linux脚本小子速成
$如果你耐心看十分钟,你会惊奇的发现我讲的是一堆废话,别急.kali linux博大精深,绝对不是十分钟就能学的完,真正的好东西永远都是夹在屎里,想学你想要的,拿出你的决心来. kali linux用 ...
- TypeScript 中的 type 和 interface:你真的了解它们的不同吗?
如果你有写过 Vue3 的项目,那么对 TypeScript 肯定不会陌生.不管是公司新项目技术选型还是个人学习开发新的前端项目,Vue3 + TypeScript 已经成为首选技术方案之一 在 Ty ...
- [JOISC 2023 Day3] Tourism 题解
大家好,我喜欢珂朵莉树,所以我用珂朵莉树 \(AC\) 了本题. 实际上,我们比较容易发现,这题实际上就是求 \([l,r]\) 中的所有点作为关键点时,虚树所压缩的所有点(实际上就是显现出来的点+在 ...
- Magnet AXIOM使用+2024獬豸杯实战
Magnet AXIOM+2024獬豸杯实战 百度网盘链接 2024獬豸杯:https://pan.baidu.com/s/1t_6Fwl6RgmEtF0UXRfVD1A?pwd=j583#list/ ...
- JavaScript 之 高级程序设计 基础篇 (一)
导读 此篇文章为作者拜读JavaScrpit 第四版(红宝石)的笔记内容.适用于有经验的程序员阅读:作者 java开发出身.在之前前后端不分离的时代 使用esayUI JQuery的时代 经常写 js ...
- JNZ项目犯错记
年度绩效因为JNZ项目没有达到绩效目标被打了低绩效,这个是我从业这么多年来第一次低绩效,记一下我在这个项目中犯的错误. 项目起源 公司业务是一个ToB的电商场景,已经经营数年了,公司会给大客户一定账期 ...
- hbase - [04] java访问hbase
需要导入jar包 $HBASE_HOME/lib下的所有jar包 $HADOOP_HOME/share/hadoop/common的所有jar包 package com.harley.hbase.te ...
- ABC393C题解
大概评级:橙. 送分题. 题意就是让你统计有多少条边是重边或自环. 设 \(u_i\) 表示第 \(i\) 条边的左端点,\(v_i\) 表示第 \(i\) 条边的右端点. 那么如果 \(u_i = ...
- 震撼揭秘:LLM幻觉如何颠覆你的认知!
LLM幻觉 把幻觉理解为训练流水线中的一种涌现认知效应 Prashal Ruchiranga Robina Weermeijer 在 Unsplash 上的照片 介绍 在一个名为<深入剖析像Ch ...