《算法王晓东》多处最优服务次序问题

多处最优服务次序问题

题目描述

设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≤i≤n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小? 平均等待时间是n个顾客等待服务时间的总和除以n。
算法设计:对于给定的n个顾客需要的服务时间和s的值,计算最优服务次序。

输入描述

第一行有2 个正整数n和s,表示有n个顾客且有s处可以提供顾客需要的服务。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。

输出描述

将计算出的最小平均等待时间输出

样例

输入
10 2
56 12 1 99 1000 234 33 55 99 812
输出
336


思路:贪心策略,先将顾客所需服务时间按升序排序,因为要先服务所需时间少的顾客,才能是整体的平均等待时间最短(最短作业优先调度算法-SJF),每一次任务调度,都选择当前所有服务窗口中服务时间总和最短的窗口,这样当前任务所等待的时间才最少,以局部最少达到全局最少。

假设某时刻窗口状态如下:则下一个顾客要想等待的时间最少,那么应选择窗口2(等待时长192),所有顾客的选择策略(贪心)也均是如此。


Code:

#include<bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
const int N = 1e5 + 10;

int ms[N],t[N];
int n,s;
struct cmp {
	bool operator()(pair<int,int>&a,pair<int,int>&b) {
		return a.first>b.first;
	}
};

int main() {
	cin>>n>>s;
	for(int i=1; i<=n; i++) cin >> t[i];
	sort(t+1,t+1+n);
	priority_queue<pair<int,int>,vector<pair<int,int>>,cmp> q; //维护窗口状态
	for(int i=1; i<=s; i++) q.push({0,i});
	double sum=0;
	for(int i=1; i<=n; i++) {
		int id = q.top().second;
		q.pop();
		ms[id]+=t[i];
		sum+=ms[id];
		q.push({ms[id],id});
	}
	
	cout<<sum/n;
	
	return 0;
}

/*


*/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多区域ISIS路由计算

多区域ISIS路由计算&#xff1a; 1、骨干区域是如何访问非骨干区域&#xff1f;&#xff08;R4如何学习到200.200/32的路由&#xff1f;&#xff09; 1.1 默认情况下&#xff0c;L1/2级别路由器会将L1级别LSDB中的叶子信息&#xff0c;作为自己L2级别实节点的叶子信息添加到L2的…

鸿蒙Harmony应用开发—ArkTS-显式动画

提供全局animateTo显式动画接口来指定由于闭包代码导致的状态变化插入过渡动效。同属性动画&#xff0c;布局类改变宽高的动画&#xff0c;内容都是直接到终点状态&#xff0c;例如文字、canvas的内容、linearGradient等&#xff0c;如果要内容跟随宽高变化&#xff0c;可以使用…

代码随想录算法训练营第day25|216.组合总和III、 17.电话号码的字母组合

216.组合总和III 力扣题目链接 (opens new window) 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输…

【LabVIEW FPGA入门】局部变量和全局变量

局部变量 无法访问某前面板对象或需要在程序框图节点之间传递数据时&#xff0c;可创建前面板对象的局部变量。创建局部变量后&#xff0c;局部变量仅仅出现在程序框图上&#xff0c;而不在前面板上。 局部变量可对前面板上的输入控件或显示件进行数据读写。写入局部变量相当于…

华为手机如何录屏?两个方法助你轻松录制

随着智能手机的普及&#xff0c;越来越多的用户开始使用手机来录制屏幕&#xff0c;以便分享游戏过程、教程演示等。其中&#xff0c;华为手机以其卓越的性能和丰富的功能受到了广大用户的喜爱&#xff0c;可是很多用户不知道华为手机如何录屏&#xff0c;本文将详细介绍两种华…

lv17 安防监控项目实战 3

代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义&#xff08;使用在外extern即可&#xff09;定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…

数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署

简介 随着数字人物概念的兴起和生成技术的不断发展&#xff0c;将照片中的人物与音频输入进行同步变得越来越容易。然而&#xff0c;目前仍存在一些问题&#xff0c;比如头部运动不自然、面部表情扭曲以及图片和视频中人物面部的差异等。为了解决这些问题&#xff0c;来自西安…

Java面试题(Spring篇)

&#x1f49f;&#x1f49f;前言 ​ 友友们大家好&#xff0c;我是你们的小王同学&#x1f617;&#x1f617; 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞&#x1f44d; 收藏⭐ 评论&#x1f4c4; 小王的主页…

2024 年广西职业院校技能大赛高职组《云计算应用》赛项赛题第 1 套

#需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; #需要资源或有问题的&#xff0c;可私博主&#xff01;&#xff01;&#xff01; 某企业根据自身业务需求&#…

Nettty(1) - 异步和事件驱动

1 Java网络编程 早期的Java API只支持由本地系统套接字提供的所谓的阻塞函数&#xff0c;下面将使用这些函数编写服务端的代码。 1.1 服务端 package com.socket.test;import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader; import java.io.IOException; import…

C#,图论与图算法,图最短路径的迪杰斯特拉(Dijkstra)算法与源代码

1 图的最短路径 给定一个图和图中的源顶点,查找从源到给定图中所有顶点的最短路径。 Dijkstra的算法与Prim的最小生成树算法非常相似。像Prim的MST一样,我们生成一个以给定源为根的SPT(最短路径树)。我们维护两个集合,一个集合包含最短路径树中包含的顶点,另一个集合包…

实验2 E-R图

实 验 名 称 实验2 E-R图 实验目的 &#xff08;1&#xff09;通过绘制系统E-R图&#xff0c;熟练掌握系统E-R图的绘制&#xff0c;以及写出E-R图的关系模式。 实验内容 绘用Microsoft Visio绘制出某防疫管理系统的E-R图并写出关系模式。 在抗击新冠肺炎疫情中&#xff…

海外媒体发稿:如何通过海外媒体推广发稿平台提升知名度-华媒舍

在数字时代&#xff0c;传统媒体受到了前所未有的冲击。海外媒体推广发稿平台成为了一种有效的方式&#xff0c;可以帮助个人、公司或组织提升在全球范围内的知名度。本文将介绍如何通过海外媒体推广发稿平台来实现这一目标&#xff0c;并给出一些建议和注意事项。 一、海外媒体…

使用 GTSAM 进行曲线拟合的示例

GTSAM介绍 GTSAM(通用因子图优化库)是一种用于状态估计和传感器数据融合的开源C++库。它提供了强大的工具,用于在机器人和自主系统领域进行感知、决策和控制。 功能和特点 状态估计与优化: GTSAM 提供了灵活且高效的状态估计框架,能够处理从传感器获取的数据,并…

支持普通表单+收费在线支付活动 自定义表单系统源码 带完整的安装代码包以及搭建教程

在当前信息化社会中&#xff0c;表单作为数据收集和信息交互的重要工具&#xff0c;被广泛应用于各类网站和平台。然而&#xff0c;市面上的表单系统大多功能单一&#xff0c;无法满足用户多样化的需求。特别是对于一些需要实现在线支付功能的收费活动&#xff0c;更是缺乏一套…

固定资产管理系统|基于JSP技术+ Mysql+Java+ B/S结构的固定资产管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;ssm&#xff0c;springboot的平台设计与实现项目系统开发资源&#xff08;可…

flask+ flask_socketio HTTP/1.1“ 400 公网IP 问题解决方案

很经典的一个跨域问题 在服务端改成socketio SocketIO(app, cors_allowed_origins"*")就可以了

文心一言 VS 讯飞星火 VS chatgpt (219)-- 算法导论16.3 1题

一、请解释&#xff0c;在引理 16.2 的证明中&#xff0c;为什么若x.fregb.freg&#xff0c;则有a.fregb.fregx.freqy.freq。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;看起来引理 16.2 的描述中有些混淆&#xff0c;因为 x.freg 和 x.fre…

分巧克力---第八届蓝桥杯省赛c++A,B组

题目描述如下 对于满足某个条件的单调最值问题&#xff0c;我们应该下意识考虑二分&#xff0c;我们分析本题的条件&#xff0c;要找一个边长最大值使得我们所有的巧克力切出该边长的正方形的数量大于等于人数&#xff0c;由于我们的边长一定在1到1e5之间&#xff0c;我们要在这…

jmx_prometheus_javaagent-0.19.0.jar+Prometheus+Grafana 监控Tongweb嵌入式(by lqw)

文章目录 1.思路2.部署准备3.应用jar包修改配置和导入tw嵌入式的依赖&#xff08;参考&#xff09;4.Prometheus部署5.Prometheus配置6.安装和配置Grafana 1.思路 Tongweb嵌入式最终是把依赖打入到java应用&#xff08;也就是jar包里&#xff09;&#xff0c;然后启动jar包进行…