P1419 寻找段落(二分答案)(内附封面)

news2024/9/25 3:16:59

寻找段落

题目描述

给定一个长度为 n n n 的序列 a a a,定义 a i a_i ai 为第 i i i 个元素的价值。现在需要找出序列中最有价值的“段落”。段落的定义是长度在 [ S , T ] [S, T] [S,T] 之间的连续序列。最有价值段落是指平均值最大的段落。

段落的平均值 等于 段落总价值 除以 段落长度

输入格式

第一行一个整数 n n n,表示序列长度。

第二行两个整数 S S S T T T,表示段落长度的范围,在 [ S , T ] [S, T] [S,T] 之间。

第三行到第 n + 2 n+2 n+2 行,每行一个整数表示每个元素的价值指数。

输出格式

一个实数,保留 3 3 3 位小数,表示最优段落的平均值。

样例 #1

样例输入 #1

3
2 2
3
-1
2

样例输出 #1

1.000

提示

【数据范围】

对于 30 % 30\% 30% 的数据有 n ≤ 1000 n \le 1000 n1000

对于 100 % 100\% 100% 的数据有 1 ≤ n ≤ 100000 1 \le n \le 100000 1n100000 1 ≤ S ≤ T ≤ n 1 \le S \le T \le n 1STn − 10 4 ≤ a i ≤ 10 4 -{10}^4 \le a_i \le {10}^4 104ai104

【题目来源】

tinylic 改编

大致思路

对于这道题,我们可以二分答案求解

二分平均值,将a中每个元素减去mid,然后判断是否存在S~T的区间和大于0

然后用单调队列维护一个以 i i i 为终点的最大值的区间(手打队列)

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+2233;
int n,s,t,q[N];
double sum[N],a[N],l,r;
int check(double x){
	int l=1,r=0;
	sum[0]=0;
	for(int i=1;i<=n;i++){
		sum[i]=sum[i-1]+a[i]-x;
	}
	int k=0;
	for(int i=s;i<=n;i++){
		while(l<=r&&sum[q[r]]>sum[k])r--;
		q[++r]=k;
		if(i-q[l]>t) l++;
		if(sum[i]-sum[q[l]]>1e-8)return 1;
		k++;
	}
	return 0;
}
int main(){
	cin>>n>>s>>t;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	l=-11451,r=19198;
	while(r-l>1e-8){
		double mid=(l+r)/2;
		if(check(mid)){
			l=mid;
		}
		else r=mid;
	}
	printf("%.3lf",r);
	return 0;
}

附封面

请添加图片描述

附~

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/822692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot整合TrueLicense生成和验证License证书

一 License介绍 License&#xff0c;也就是版权许可证书&#xff0c;一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同&#xff0c;一般可以分为以下几种情况讨论&#xff1a; 应用部署在开发者自己的云服务器上。这种情况下用户通过账号登录的形式远程…

Halcon——在C#中各数据类型的相互转换

Halcon——在C#中各数据类型的相互转换 前言一、HObject to1.HObject to HImage 二、HTuple to1.HTuple to Int2.HTuple to Double3.HTuple to String4.HTuple to long5.HTuple to object6.HTuple to Arr 总结 前言 用c#进行Halcon代码转换的时候&#xff0c;虽然有halcon自带…

Python基础语法-梳理的几个知识点

1.书写格式 不需要声明变量类型&#xff0c;因为 在python中&#xff0c;变量为弱类型变量&#xff0c;Python解析器根据值自动匹配变量类型分支结构、循环结构中的条件表达式&#xff0c;不需要用小括号括起来执行语句体不需要大括号括起来&#xff0c;而是用冒号代替 2.格式…

GRNN神经网络原理与matlab实现

1案例背景 1.1GRNN神经网络概述 广义回归神经网络(GRNN Generalized Regression Neural Network&#xff09;是美国学者 Don-ald F. Specht在1991年提出的,它是径向基神经网络的一种。GRNN具有很强的非线性映射能力和柔性网络结构以及高度的容错性和鲁棒性,适用于解决非线性问…

使用 JMeter 进行压力测试

一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试&#xff0c;他可以帮助我们发现系统中的瓶颈问题&#xff0c;减少发布到生产环境后出问题的几率&#xff1b;预估系统的承载能力&#xff0c;使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步…

套接字通信(C/C++ 多线程)----基于线程池的并发服务器

&#xff08;一&#xff09;大家可以看我写的这三篇&#xff0c;了解一下&#xff1a; 基于linux下的高并发服务器开发&#xff08;第四章&#xff09;- 多线程实现并发服务器_呵呵哒(&#xffe3;▽&#xffe3;)"的博客-CSDN博客https://blog.csdn.net/weixin_4198701…

Jmeter如何添加插件

一、前言 ​ 在我们的工作中&#xff0c;我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件&#xff1f; 2023最新Jmeter接口测试从入门到精通&#xff08;全套项目实战教程&#xff09; 二、插件管理器 ​ 首先我们需要下载插件管理器j…

一个完整的http请求响应过程

一、 HTTP请求和响应步骤 图片来自&#xff1a;理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤&#xff0c;下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 二、TCP/IP协议 TCP/IP协议模型&#xff08;Transmission Control Protocol/Internet Pr…

04、并发用户数该怎么计算

什么是并发&#xff1f; 我们假设上图中的这些小人是严格按照这个逻辑到达系统的&#xff0c;那显然&#xff0c;系统的绝对并发用户数是 4。如果描述 1 秒内的并发用户数&#xff0c;那就是 16。是不是显而易见&#xff1f;但是&#xff0c;在实际的系统中&#xff0c;用户通常…

若依框架 - 对二次封装数据分页

LsDistrictController /*** 查询地段列表*/ApiOperation("查询地段列表")GetMapping("/list")public TableDataInfo list(LsDistrict lsDistrict) {startPage();Map<String, List> map lsDistrictService.selectLsDistrictList(lsDistrict);if (Col…

java类和对象详解(1)

面向对象的初步认知 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program, 简称OOP),在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。 用面向对象的思想来涉及程序&#xff0c;更…

AntdesignVue 时间设置为年份不回显问题解决

时间设置为年份回显时报如下错误 年份设置值后报value异常 解决方案 格式不一致导致的 moment格式化后是string类型&#xff0c;后台返回的是Number类型导致的&#xff0c;统一格式就会显示了

人工智能安全-3-噪声数据处理

0 提纲 噪声相关概述噪声处理的理论与方法基于数据清洗的噪声过滤主动式过滤噪声鲁棒模型1 噪声相关概述 噪声类型: 属性噪声:样本中某个属性的值存在噪声标签噪声:样本归属类别关于噪声分布的假设:均匀分布、高斯分布、泊松分布等。 标签噪声的产生原因: (1)特定类别…

Unity 引擎做残影效果——1、BakeMesh

Unity实现残影效果 大家好&#xff0c;我是阿赵。   这次来分享一下在Unity里面做残影的效果。   所谓的残影&#xff0c;就是在角色移动的过程中&#xff0c;留下一串残留的影子。 这种效果比较常出现在格斗游戏和动作游戏。   在Unity里面做残影&#xff0c;方法很多…

DSPM来袭!什么是数据安全态势管理

数据安全态势管理是一种保护云数据的方法&#xff0c;通过确保敏感数据始终具有正确的安全态势&#xff0c;无论其被复制或移动到何处。 那么&#xff0c;什么是DSPM&#xff1f;这是一个简单的例子&#xff1a; 假设您已经为云数据建立了出色的安全态势。在此示例中&#xf…

力扣 96. 不同的二叉搜索树

题目来源&#xff1a;https://leetcode.cn/problems/unique-binary-search-trees/description/ C题解&#xff1a;动归五部曲。 确定dp数组以及下标的含义。dp[i] &#xff1a; 1到i为节点组成的二叉搜索树的个数为dp[i]。确定递推公式。由于是二叉搜索树&#xff0c;我们可以…

vue实现 图片拖拽及鼠标滚轮放大缩小

效果&#xff1a; 代码实现 <template><div class"container"><divclass"image-container"mousewheel.stop"onMouseWheel"mousedown"onMouseDown"mousemove"onMouseMove"mouseleave"onMouseLeave&quo…

大文件传输的有效可用方式

如何传输大文件&#xff1f;大文件传输的方法有哪些&#xff1f;在互联网时代&#xff0c;速度就是效率。企业在生产过程中需要进行数据信息的交换、转移。这就涉及到大文件的传输。不同的行业都有大文件传输的需求。比如影视行业需要每天传输视频素材&#xff0c;一个视频可能…

第十三章 利用PCA简化数据

文章目录 第十三章 利用PCA简化数据13.1降维技术13.2PCA13.2.1移动坐标轴 13.2.2在NumPy中实现PCA13.3利用PCA对半导体制造数据降维 第十三章 利用PCA简化数据 PCA&#xff08;Principal Component Analysis&#xff0c;主成分分析&#xff09;是一种常用的降维技术&#xff0…

Error in v-on handler (Promise/async): “[object Object]“

解决方法&#xff1a;用try 和 catch 语句来处理 catch来接收try异常报错