最佳牛围栏

2023-12-18 12:36
文章标签 最佳 围栏

本文主要是介绍最佳牛围栏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


title: 最佳牛围栏
date: 2023-12-17 21:26:57
tags: 二分
categories: 算法进阶指南

—> 传送门

题目大意

给定正整数序列 A A A,求一个平均数最大的、长度不小于 L L L (连续的) 字段。

解题思路

二分答案。判定“是否存在一个长度不小于 L L L 的字段,平均数不小于二分的值”
如果数列的每个数都减去二分的值,就转化为判定“是否存在一个长度不小于 L L L 的字段,字段和非负”。
接下来解决两个问题:
1.求一个字段,他的和最大(无长度限制)
扫描该数列,字段和变成负数 ,则清空。
2.求一个字段,他的和最大(长度不小于 L L L)
每一次只会有一个新的取值需要进行比较,因此只需要用一个变量记录一下当前的最小值,每次新的取值与最小值比较。

单调性:答案随着某个变量增大而增大或者增大而减小。

时间复杂度

n l o g n nlogn nlogn

实现代码

#include<bits/stdc++.h>using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;const int N = 6E5 + 10, mod = 1e9 + 7;double a[N],b[N],sum[N];int main()
{int N,L;cin >> N >> L;for(int i = 1;i <= N; i ++){cin >> a[i];}double l = -1e6,r = 1e6;double eps = 1e-5;while(r - eps > l){double mid = (l + r) / 2;for(int i = 1; i <= N; i ++){b[i] = a[i] - mid;}for(int i = 1; i <= N; i ++){sum[i] = (sum[i - 1] + b[i]);}double ans = -1e10;double min_val = 1e10;for(int i = L; i <= N; i ++){min_val = min(min_val,sum[i-L]);//ans = max(ans,sum[i] - min_val);}//cout << ans << endl;if(ans >= 0){l = mid;}else r = mid;}cout << int(r * 1000) << endl;return 0;
}

这篇关于最佳牛围栏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508384

相关文章

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机