首页 > 其他分享 >排队接水

排队接水

时间:2023-06-15 19:59:00浏览次数:45  
标签:sort aaa 排队 样例 等待时间 ti

排队接水

题目描述

有 \(n\) 个人在一个水龙头前排队接水,假如每个人接水的时间为 \(T_i\),请编程找出这 \(n\) 个人排队的一种顺序,使得 \(n\) 个人的平均等待时间最小。

输入格式

第一行为一个整数 \(n\)。

第二行 \(n\) 个整数,第 \(i\) 个整数 \(T_i\) 表示第 \(i\) 个人的等待时间 \(T_i\)。

输出格式

输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。

样例 #1

样例输入 #1

10 
56 12 1 99 1000 234 33 55 99 812

样例输出 #1

3 2 7 8 1 4 9 6 10 5
291.90

提示

\(n \leq 1000,t_i \leq 10^6\),不保证 \(t_i\) 不重复。

当 \(t_i\) 重复时,按照输入顺序即可(sort 是可以的)

解析

好久都没见过这么简单的贪心了啊

贪心宗旨:将时间少的排在前面(用\(sort\)排序)

只用定义一个结构体数组就行啦

最后再用一个求和公式

代码

#include <bits/stdc++.h>
using namespace std;
struct aaa{
	int ti,num;//定义结构体aaa      
}a[1010];//定义结构体数组
bool cmp(aaa x,aaa y)//定义“小于”运算符
{
	return x.ti<y.ti;    
}
int main()
{
	int n;
	double time=0;
	cin >> n;    
	for(int i=1;i<=n;i++)   
	{
		cin >> a[i].ti;
		a[i].num=i;//序号存起来              
	} 
	sort(a+1,a+n+1,cmp);//排序
	for(int i=1;i<=n;i++)
	{
		cout << a[i].num << ' '; //先把简单的做了,输入由小到大的编号
	}
	cout << endl;//要换行
	int i;
	for(int j=n-1;j>=1;j--) //等待人数的计数器,由n-1开始
	{
		i=n-j;//这是个规律,当前最少时间的人序号和要等待的人数之和=n
		time+=a[i].ti*j; //累加                  
	}
	
//   算平均,保留两位小数
//	printf("%.2lf",time/n);
	cout << fixed << setprecision(2) << time/n;
	return 0; 
}

标签:sort,aaa,排队,样例,等待时间,ti
From: https://www.cnblogs.com/momotrace/p/p1223.html

相关文章

  • [C++/PTA] 办事大厅排队
    题目要求在郑州大学综合办事大厅,每天陆陆续续有很多人来排队办事。现在你能否写程序帮助老师时刻了解当前办理业务的情况。输入格式:第一行一个数字N,表示排队信息或者查询信息条目的数量。以下N行,每行的内容有以下3种情况(1)inname表示名字为name的人员新来到办事大厅,排在......
  • C/C++模拟银行排队叫号系统[2023-05-11]
    C/C++模拟银行排队叫号系统[2023-05-11]2、模拟银行排队叫号系统(难度等级A)[问题描述]模拟实现银行的排队叫号系统。[基本要求](1)假定银行上午9点开门,下午5点关门,期间每个小时的客流量不超过35人;(2)每个客户的基本信息包括:到达银行时间、业务需要办理的时长。这两项数据均......
  • 基于蒙特卡洛循环和排队理论的客户结账等待时间模拟优化matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:    当结账窗口数量为22时:到达顾客数:5863服务顾客数:5863损失顾客数:0平均服务时间:0.497495平均队长:11.661919平均等待时长:0.000105顾客不能马上得到服务的概率:0.000020 当结账窗口数量为23时:到达顾客数:5396服务顾客......
  • HDU1873 看病要排队
    E- 看病要排队TimeLimit:1000MS     MemoryLimit:32768KB     64bitIOFormat:%I64d&%I64uDescription看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么......
  • 23-4-14--链表--银行排队问题之单队列多窗口服务
    假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统......
  • Gpssworld仿真(二):并排排队系统模拟
    4.3某一个加油站能够配给三个级别的燃油:①家庭取暖用的燃油;②轻工业用的燃油;③运输用的燃油。每一级别的燃油都有一个对应的油泵。订单中燃油的数量在3000加仑和5000加仑中变化,每次增加10加仑,是均匀分布。这个站点最多能容纳12辆车。来加油站装油的汽车到达的平均时间间隔是18分......
  • 奶牛排队【题解】
    题目描述奶牛在熊大妈的带领下排成了一条直队。显然,不同的奶牛身高不一定相同……现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛\(A\)是最矮的,最右边的\(B\)是最高的,且\(B\)高于\(A\)奶牛。中间如果存在奶牛,则身高不能和\(A,B\)奶牛相同。问这样的奶牛最......
  • AcWing 1215. 小朋友排队
    n个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增......
  • 排队论——系统运行指标的R语言实现
    排队论也称随机服务系统理论,排队论又叫随机服务系统理论或公用事业管理中的数学方法。它是研究各种各样的排队现象的。它所要解决的主要问题是:在排队现象中设法寻求能够达到服务标准的最少设备,使得在满足服务对象条件下,服务机构的花费最为经济,使服务系统效率最高。排队现象作为......
  • GPSSworld仿真(一):程序题——单窗口排队系统
    3.3一个仓库共存放了2000吨货物,货物以三种规模出库,少量(10吨),中等(20吨),大量(50吨),分别以10±5分,15分,30±10分的速率出库。如果没有货位达到的情况下,一个仓库能维持供货多少时......