news 2026/5/25 1:24:58

洛谷p1419

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
洛谷p1419

1. 问题转化

我们要判断:是否存在子数组b[j..i](长度len = i-j+1),满足:lenb[j]+b[j+1]+...+b[i]​≥x

对不等式做等价变形:

  1. 两边乘lenb[j] + ... + b[i] ≥ x * len
  2. 把右边移到左边:(b[j]-x) + (b[j+1]-x) + ... + (b[i]-x) ≥ 0

我们定义新数组a[i] = b[i] - x,那么问题就转化为:

数组a中,是否存在一个长度在[s, t]范围内的连续子数组,其和 ≥ 0?

2. 前缀和的引入

定义前缀和数组sum[i] = a[1] + a[2] + ... + a[i](注意:这里sum[0] = 0,表示前 0 项和为 0)。

那么子数组a[j..i]的和可以用前缀和快速计算:sum(j..i)=sum[i]−sum[j−1]

结合子数组长度的约束:

  • 子数组长度len = i - (j-1),要求s ≤ len ≤ t
  • 代入得:s ≤ i - (j-1) ≤ t→ 整理出j-1的范围:i-t ≤ j-1 ≤ i-s

最终,问题彻底转化为:

对于每个i,在区间[i-t, i-s]内,是否存在一个k,使得sum[i] - sum[k] ≥ 0(即sum[k] ≤ sum[i])?

换句话说:只要在k ∈ [i-t, i-s]中,最小的sum[k] ≤ sum[i],就存在满足条件的子数组

而这段代码的核心,就是用单调队列,在 O (n) 时间内,高效地为每个i找到区间[i-t, i-s]内的最小sum[k]

#include<bits/stdc++.h> using namespace std; const int N=100005; //实数二分用double double a[N],sum[N],b[N];int q[N]; int s,t,n; double l,r,ans,mid; bool cheak(double k){ int l=1,r=0; sum[0]=0; for(int i=1;i<=n;i++) b[i]=a[i]-k; //前缀和 for(int i=1;i<=n;i++) sum[i]=sum[i-1]+b[i]; //q是单调队列,存最小的并且靠后的那个 for(int i=1;i<=n;i++) { if(i>=s){ while(r>=l&&sum[i-s]<sum[q[r]]) r--; q[++r]=i-s; } if(l<=r&&q[l]<i-t)l++; if(l<=r&&sum[i]-sum[q[l]]>=0) return true; } return false; } int main() { cin>>n; cin>>s>>t; for(int i=1;i<=n;i++) { cin>>a[i]; } //在范围内实数二分 ans=l=-10000,r=10000; while(r-l>1e-5){ mid=(l+r)/2; if(cheak(mid)) ans=l=mid; else r=mid; } printf("%.3lf",ans); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 1:17:14

# WSL2 中使用 USB 串口设备:一键挂载脚本详解> 让 WSL2 访问 Windows 下的 USB 转串口设备,告别繁琐的命令行操作## 背景:WSL2 的 USB 设备访问难题

WSL2 挂载 USB 串口设备脚本解析准备工作 确保 WSL2 内核为最新版本 Windows 端以管理员身份安装 usbipd-win&#xff1a;winget install dorssel.usbipd-winWSL2 中安装工具包&#xff1a;sudo apt install usbutils脚本功能实现 自动检测 usbipd.exe 路径&#xff0c;支持默认…

作者头像 李华
网站建设 2026/5/25 1:16:24

【消息队列】Kafka深度解析:从原理到生产环境实战

【消息队列】Kafka深度解析&#xff1a;从原理到生产环境实战 引言 Kafka是一个分布式流处理平台&#xff0c;具有高吞吐量、低延迟、高可靠性的特点&#xff0c;被广泛应用于日志收集、实时数据处理、消息队列等场景。本文将详细介绍Kafka的核心原理和生产环境实践。 一、Kafk…

作者头像 李华
网站建设 2026/5/25 1:09:46

2026年AI模型接口中转站全网全维度硬核实测 面向开发者与企业的权威选型实用指南

本次测评由中国产业信息研究院联合TechInsight AI评测实验室在2026年3月28日正式对外发布&#xff0c;所有公开统计数据全部来源于72小时不间断连续压测、万级QPS高并发仿真模拟、10万真实业务请求样本以及服务商后台脱敏运营数据&#xff0c;所有测试环节完全贴合真实生产场景…

作者头像 李华
网站建设 2026/5/25 1:06:22

离线语音识别与物联网在智能家居中的应用与优化

1. 项目概述&#xff1a;离线语音识别与物联网的智能家居融合方案 在智能家居领域&#xff0c;语音控制已成为最自然的人机交互方式之一。传统基于云端的语音识别方案&#xff08;如Amazon Alexa&#xff09;虽然普及度高&#xff0c;但存在三个致命缺陷&#xff1a;首先&#…

作者头像 李华
网站建设 2026/5/25 1:06:16

Codex CLI高危漏洞CVE-2025-61260深度解析与工程化防御

1. 这不是一次普通漏洞&#xff0c;而是一面照见AI开发工具链脆弱性的镜子CVE-2025-61260这个编号刚在NVD&#xff08;国家漏洞数据库&#xff09;公开时&#xff0c;我正在帮一家中型金融科技公司做CI/CD流水线安全加固。团队刚上线Codex CLI作为代码补全与PR摘要生成的标配工…

作者头像 李华
网站建设 2026/5/25 0:59:49

对称性自适应机器学习力场:高效精准计算碳纳米管声子谱

1. 项目概述&#xff1a;当机器学习“学会”了对称性在计算材料科学领域&#xff0c;我们常常面临一个经典的“精度-效率”困境。一方面&#xff0c;基于第一性原理的密度泛函理论&#xff08;DFT&#xff09;计算&#xff0c;能提供近乎量子力学精度的结果&#xff0c;是探索材…

作者头像 李华