hihoCoder#1269 : 优化延迟

网络延迟的优化方法-管理延迟 随着社会的快速发展,网络数据量持续增加,各行各业对于延迟的要求也随之提高,解决网络延迟迫在眉睫。虹科和ATTO在每个产品中都使用延迟管理技术,实现了数据移动的高效性和稳定性,有效解决了网络延迟问题。 阅读详情

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的"延迟惩罚值"。序列中的第i个数据包的"延迟惩罚值"是Pi。如果N个数据包按照<Pi1, Pi2, ... PiN>的顺序被处理,那么总延迟惩罚

SP=1*Pi1+2*Pi2+3*Pi3+...+N*PiN(其中i1, i2, ... iN是1, 2, 3, ... N的一个排列)。

小Ho的程序会依次处理每一个数据包,这时N个数据包的总延迟惩罚值SP为

1*P1+2*P2+3*P3+...+i*Pi+...+N*PN。  

小Hi希望可以降低总延迟惩罚值。他的做法是在小Ho的程序中增加一个大小为K的缓冲区。N个数据包在被处理前会依次进入缓冲区。当缓冲区满的时候会将当前缓冲区内"延迟惩罚值"最大的数据包移出缓冲区并进行处理。直到没有新的数据包进入缓冲区时,缓冲区内剩余的数据包会按照"延迟惩罚值"从大到小的顺序被依次移出并进行处理。

例如,当数据包的"延迟惩罚值"依次是<5, 3, 1, 2, 4>,缓冲区大小K=2时,数据包被处理的顺序是:<5, 3, 2, 4, 1>。这时SP=1*5+2*3+3*2+4*4+5*1=38。

现在给定输入的数据包序列,以及一个总延迟惩罚阈值Q。小Hi想知道如果要SP<=Q,缓冲区的大小最小是多少?

输入

Line 1: N Q

Line 2: P1 P2 ... PN

对于50%的数据: 1 <= N <= 1000

对于100%的数据: 1 <= N <= 100000, 0 <= Pi <= 1000, 1 <= Q <= 1013

输出

输出最小的正整数K值能满足SP<=Q。如果没有符合条件的K,输出-1。

样例输入
5 38
5 3 1 2 4
样例输出
2

题目链接:http://hihocoder.com/problemset/problem/1269

解题思路:二分!用到优先队列,枚举k值,不多说了,一开始没想到二分,写得太丑,后来改了就过了。。。

代码如下:

#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
#define ll long long
using namespace std;
const int maxn= 100000+10;
int a[maxn],b[maxn];
ll misum[maxn];
priority_queue <ll>q;
int main()
{
	int k,n,ansk;
	ll Q, ans=0;
	scanf("%d%lld",&n,&Q);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
		b[i]=a[i];
	}
	sort(b,b+n);
	ll sum=0;
	int num=n;
	for(int i=0;i<n;i++)
	{
		sum+=(b[i]*num--);
		misum[i+1]=sum;
	}
	if(misum[n]>Q)
	{
		printf("-1\n");
		return 0;
	}
	ans=0;
	for(int i=0;i<n;i++)
	{
		ans+=(i+1)*(a[i]);
	}
	if(ans<=Q)
	{
		printf("1\n");
		return 0;
	}
	int lw=2,hg=n;
	while(lw<=hg)
	{
		while(!q.empty())
			q.pop();
		k=(lw+hg)/2;
		ans=0;
		int cnt=2;
		for(int i=0;i<k;i++)
			q.push(a[i]);
		ans+=q.top();
		q.pop();
		for(int i=k;i<n;i++)
		{
			q.push(a[i]);
			ll cur=q.top();
			ans+=(cnt*cur);
			cnt++;
			q.pop();
		}
		ans+=misum[k-1];
		if(ans>Q)
			lw=k+1;
		else
		{
			hg=k-1;
			ansk=k;
		}
	}
	printf("%d\n",ansk);
	return 0;
}


MEG预处理-Brainstorm Brainstorm下载和安装 去Brainstorm官网进行下载:打开网页后,点击左侧Download;在跳出来的界面中进行简单的注册,注册完成后可以进行下载 解压后得到“brainstorm3”的文件夹,里面包含Brainstorm工具包的所有文件,把这个文件夹放在某个路径如"E:\matlab_tools\brainstorm3"即可 同样在某个路径建立空的文件夹命名为:brainstorm_db用于工具包运行过程中自动存储生成的文件,所以这个文件中生成的数据不要手动移动删除 在Matlab中,把. 阅读详情

相关推荐

人工智能渗透测试:自动化安全评估

渗透测试认证的价值包括提高可信度和技能水平,并帮助客户确保由经过认证的个人对其系统进行全面的手动调查。B2B 交互变得越来越复杂,特别是功能丰富的超级应用程序,需要采取强有力的安全预防措施,而自动化渗透测试应用程序则是一种未被发现的武器。渗透测试中的人工智能通过提高效率、自动收集信息、发现隐藏的漏洞、开发个性化攻击和减少误报来提高 B2B 集成的安全性。这包括风险简报、补救建议和战略建议。渗透测试由五个阶段组成,是网络安全中的关键防御措施,它模拟现实世界的攻击,以识别系统缺陷并在漏洞被利用之前解决它们。

weixin_48967543的博客 2358

hihocoder1269优化延迟

这道题其实只是一道很裸的二分+优先队列,然而本人比较笨,所以WA了好多次,下面附上代码#include <iostream> #include <queue> #include <string.h> using namespace std; priority_queue<long long>que; int n,t=99999999; long long q; int a[100005]; long

银之夏雪的博客 554

告别混乱代码!在Arduino IDE中管理多文件项目的5个必备技巧

本文分享了在Arduino IDE中管理多文件项目的5个必备技巧,帮助开发者告别混乱代码。通过代码分割和模块化设计,提升编译效率、降低内存占用,并实现功能解耦。重点介绍了头文件设计、CPP文件实现、调试技巧和工业级目录结构,让你的Arduino项目像乐高积木一样清晰易维护。

fun88的博客 360

延迟补偿在C/S架构游戏协议设计和优化中的应用

这篇文章介绍了cs这样的第一人称射击游戏中如何实现延迟补偿。非第一人称设计游戏设计也可以参考其中一些思想 原文地址: https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization

buck84的专栏 1万+

HALCON 20.11实战:5步搞定工业图像异常检测(附完整代码)

本文提供了一份基于HALCON 20.11的工业图像异常检测实战指南。通过五个核心步骤——环境准备、数据预处理、模型训练、推理解析与工程化部署,详细演示了如何利用深度学习技术,仅使用正常样本快速构建并优化金属表面划痕等缺陷的检测模型,并附有完整可运行的HDevelop代码,助力工程师实现高效、智能的工业视觉质检。

weixin_29243279的博客 139

Android13 CarPowerManagementService启动流程分析

在CarPowerManagementService中init调用PowerHalService的setListener设置事件侦听器以接收车辆的电源事件。

liuning1985622的博客 956

Redis延迟优化:深度解析与最佳实践

在众多高性能数据库中,Redis以其卓越的性能和丰富的功能,在缓存、消息队列等领域得到了广泛应用。然而,在实际使用过程中,我们可能会遇到一个常见的问题:延迟。本文将围绕“Redis知识点之延迟:概述”这一主题,探讨延迟的定义、原因及其影响,以帮助读者更好地理解和应对这一问题。在分布式系统中,延迟是一个普遍存在的现象。以Redis为例,延迟可能源于网络延迟、数据传输延迟、服务器响应延迟等多个方面。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 1059

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4248

优化篇 | 网络时延优化有哪些项

计算机中网卡延迟(NIC Latency) 通常处于微秒(μs)到毫秒(ms)级,具体取决于工作模式和场景。输出结果中将包含avg_latency(平均延迟) 和 max_latency(最大延迟)。示例:虚拟机通过OVS转发时,延迟可能从物理机的 50 μs 恶化到 500 μs。- RDMA(RoCEv2):1~5 μs(绕过操作系统)> - 普通业务:内核调优 + 队列绑定 → 200μs → 100μs。> - 关键业务:DPDK/XDP → 100μs → 20μs。

db_murphy的博客 1250

uniapp(安卓苹果app端) - 微信小程序分享提示报错“由于不支持的分享类型无法分享到微信“,“由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信“解决办法,uniapp小程序分享失败

uni-app,安卓app,苹果app,手机app端,苹果ios,安卓Android,移动端app,分享,微信分享,微信朋友圈,微信好友,转发,vue2,vue3,App端调用手机的系统分享,微信小程序,分享功能,原生app分享小程序到微信,可分享到微信、朋友圈等,报错,uniapp分享报错由于不支持的分享类型无法分享到微信,未审核应用,uniApp安卓苹果app报错由于应用和小程序未绑定在同意微信开放平台账号,无法分享到微信,微信appid,已经配置了,还是报错,无法解决,一直提示,APP_ID错误,打包

✅ 精选推荐文章 5509

AI Agent的数据安全与隐私保护措施

AI Agent(人工智能代理)作为一种能够感知环境、做出决策并采取行动的智能实体,在现代社会的各个领域中得到了广泛的应用,如智能客服、自动驾驶、金融风险评估等。随着其应用的不断拓展,AI Agent处理和存储的数据量急剧增加,这些数据包含了大量的个人敏感信息和商业机密。因此,确保AI Agent的数据安全与隐私保护变得至关重要。本文的目的在于全面探讨AI Agent的数据安全与隐私保护措施,涵盖从数据的采集、存储、处理到传输的整个生命周期。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 2864

[Offer收割]编程练习赛1 hihocoder 1269 优化延迟 (二分+优先权队列)

[Offer收割]编程练习赛1 hihocoder 1269 优化延迟 (二分+优先权队列)

Tc的专栏 1320

28-Halcon-- union_object_model_3d函数功能(用于3D模型融合)

Halcon算子union_object_model_3d是专业的3D模型融合工具,主要用于多视图拼接、部件组装和多源数据融合。该算子支持点云、网格和参数化模型输入,提供多种融合算法选择,包括基础点云拼接('points_cloud')、网格融合('mesh')和精确CAD布尔运算('cad')。工业应用涵盖逆向工程扫描拼接、汽车部件虚拟装配等场景,支持性能优化如空间分区和流式处理。算子还解决颜色属性融合、法向量保留等特殊需求,并提供拼接误差分析、拓扑验证等质量评估手段。最佳实践包含动态场景重建工作流和CA

weixin_45590420的博客 1054

mysql中索引的分类及简介

PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引。 不允许有重复。 FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。 举个例子来说,比如你在为某商场做一个会员卡的系统。 这个系统有一个会员表 有下列字段: 会员编号 INT 会员姓名 VARCHAR

人生若只如初见的博客 675

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

优化延迟

#1269 : 优化延迟 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的"延迟惩罚值"。序列中的第i个数据包的"延迟惩罚值"是Pi。如果N个数据包按照i1, Pi2, ... PiN>的顺序被处理,那么

Diors 733

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[Offer收割]编程联赛1-B 优化延迟

题目2 : 优化延迟 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的"延迟惩罚值"。序列中的第i个数据包的"延迟惩罚值"是Pi。如果N个数据包按照i1, Pi2, ... PiN>的顺序被处理,那么

andahuzhuang的博客 633

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【八中测试】优化延迟

A - 优化延迟小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的”延迟惩罚值”。序列中的第i个数据包的”延迟惩罚值”是Pi。如果N个数据包按照<Pi1, Pi2, … PiN>的顺序被处理,那么总延迟惩罚 SP=1*Pi1+2*Pi2+3*Pi3+…+N*PiN(其中i1, i2, … iN是1, 2, 3, … N的一个排列)。

你的心,如何追逐? 390

【HihoCoder - 1269】 优化延迟 (优先队列+二分优化)

题干: 小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的"延迟惩罚值"。序列中的第i个数据包的"延迟惩罚值"是Pi。如果N个数据包按照&lt;Pi1, Pi2, ... PiN&gt;的顺序被处理,那么总延迟惩罚 SP=1*Pi1+2*Pi2+3*Pi3+...+N*PiN(其中i1, i2, ... iN是1, 2, 3, .....

xuanweiace的博客 484

hiho 1269 优化延迟 二分 优先队列

题目 题目链接:http://hihocoder.com/problemset/problem/1269 题目来源:hiho的比赛。 简要题意:给定计算惩罚值的公式,求出不超过某阈值最小的缓存大小。

ned_chu的博客 734

这几天写了一个小程序后的感想

       最近一个星期都忙着在写一个稍微大一点的程序,现在程序的功能离我设想的功能还差得远呢,我就感觉很费劲了,真不知道那些诸如操作系统等的大型软件是怎么编出来的,感概呀,羡慕呀,嫉妒呀.......     感触很多,其中最深的有几条,写在这里,和大家一起学习、交流:   1.开始编码之前的构思与框架太重要了。刚开始编写这个程序的时候,没有想太多,就是想实现几个基本的功能,后来在编码

尚涛的专栏 1126

一步步优化JVM五:优化延迟或者响应时间(1)

本节的目标是做一些优化以满足对应用对延迟的需求。这次需要几个步骤,包括完善Java堆大小的配置,评估垃圾回收占用的时间和频率,也许还要尝试切换到不同的垃圾回收器,以及由于使用了不同的垃圾回收器,需要重新优化Java堆空间大小。     这一步有如下可能的结果:     1、应用的延迟需求被满足了。如果这一步的优化操作满足了应用的延迟需求,你可以继续下一步优化(优化吞吐量)。

zhoutao198712的专栏 5683

HihoCoder 1269 优化延迟(二分、优先队列)

题意: 不是很好解释,反正中文题目就不写了不是很好解释,反正中文题目就不写了 分析: 可以发现缓存越大,我们就越能拿出最大的那个数,然后让它的贡献变小可以发现缓存越大,我们就越能拿出最大的那个数,然后让它的贡献变小 所以这里有单调递减性,随着缓存变大所以这里有单调递减性,随着缓存变大 然后直接二分缓存大小,优先队列模拟即可然后直接二分缓存大小,优先队列模拟即可 代码:// //

TaoSama's Microcosm 667

优化延迟的最佳视频传输方案(一)

流媒体服务逐渐成为全球媒体和娱乐业务的核心,根据目前市场的数据,由于增长率是传统电视的10倍,OTT视频已经占到了行业总收入的15%,预计到2022年将占据市场收入的三分之一。 要想实现视频流的最优化传输,就必须实现在传输的各个阶段都协调工作,达到降低延迟最优的效果。首先,说明一下在传输过程中的第一个阶段的优化:第一公里(the first mile)传输中的优化。 PART1  分发链前段...

老衲不出家 6332

hihoCoder--1469 优化延迟(二分+优先队列)

题解注意到SP(k)随着k增大而递减,因此可以在[1, N]区间内二分搜索k,对每一个k用优先队列计算SP(k). 时间复杂度:O(n∗logn∗logn)O(n*logn*logn)#include <bits/stdc++.h> using namespace std;const int maxn = 100000 + 10; long long N, Q; int p[maxn]; long

许少y 555

编程实践之性能优化

文章目录一、避免双重求值使用Object/Array 直接量避免重复工作延迟加载条件预加载使用速度快的部分 一、避免双重求值 双重求值:在js代码中执行另一段js代码时,会导致双重求值的性能消耗。在js代码中执行一个包含js代码的字符串的方法有。 eval()函数 Function()构造函数 setTimeout() setInterval() var num1 = 5, num2 = 6...

wobushixiaobailian的博客 188

hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分

时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在玩一个游戏。给定一个数组A=[A1, A2, ... AN],小Hi可以指定M个不同的值S1,S2, S3 ... SM,这样他的总得分是 ΣSi × count(Si)。(count(Si)是数组中与Si相等的元素的个数)。 为了增加难度,小Ho要求小Hi选

世靖的码场 539
上一篇: hdu 5547 Sudoku
下一篇: P1990 覆盖墙壁
雨狮子
博客等级 码龄12年 24粉丝 185原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值