排队接水(洛谷-P1223)
题目描述
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
输入输出格式
输入格式:
输入共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。
输出格式:
输出有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
输入输出样例
输入样例#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
思路:对于每一个人,在场剩余每个人都要经历一次他的打水时间。故遍历整个数组求其他人在这个人打水时花费的总时间累加到sum上,最后sum除以n。
源代码
#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct people{//结构体int num;int time;
}arr[5000];
bool cmp(people a,people b){//排序因子return a.time<b.time;//按时间升序
}
int main()
{int n;int i;double time_sum=0,time_average;cin>>n;for(i=1;i<=n;i++) {cin>>arr[i].time;arr[i].num=i;}sort(arr+1,arr+1+n,cmp);//升序排序for(i=1;i<=n;i++) {cout<<arr[i].num<<" ";if(n-i>=1) time_sum+=arr[i].time*(n-i);//计算总时间} time_average=time_sum/n;//计算平均时间cout<<endl;cout<<setiosflags(ios::fixed)<<setprecision(2);cout<<time_average<<endl;return 0;
}
排队接水(洛谷-P1223)相关推荐
- 信息学奥赛一本通 1319:【例6.1】排队接水 | 洛谷 P1223 排队接水
[题目链接] ybt 1319:[例6.1]排队接水 洛谷 P1223 排队接水 [题目考点] 1. 贪心 2. 贪心选择性质的证明 要想证明贪心选择可以得到最优解,只需要证明最优解包含每一次的贪心选 ...
- 深入理解 操作系统 SJF算法(以洛谷P1223题为例)
CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...
- 洛谷——P1223 排队接水
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...
- 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计
P5703 [深基2.例5]苹果采购 [深基2.例5]苹果采购 - 洛谷 P5703 [深基2.例5]苹果采购(python3实现) P5703 [深基2.例5]苹果采购(python3实现)_青少年 ...
- 闲来无事刷水题、简单博弈论专题、sg函数、洛谷
记 今天闲来无事,不想刷codeforces了,到洛谷提高组训练营找几道水题刷着玩玩(虽然自己早已过了打OI的年纪)- 简单博弈论专题 P1199 三国游戏 这么考虑,由于电脑总是不能让我搭配出当前能 ...
- 信息学奥赛一本通 1233:接水问题 | 1950:【10NOIP普及组】接水问题 | OpenJudge NOI 1.9 15 | 洛谷 P1190 [NOIP2010 普及组] 接水问题
[题目链接] ybt 1233:接水问题 ybt 1950:[10NOIP普及组]接水问题 OpenJudge NOI 1.9 15:接水问题 洛谷 P1190 [NOIP2010 普及组] 接水问题 ...
- 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质
记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...
- [bzoj1601]灌水(洛谷P1550)
[USACO08OCT]Watering Hole G 洛谷灌水区 传送门 D e s c r i p t i o n Description Description Farmer John已经决定把 ...
最新文章
- python——random.sample()的用法
- [转]parseUrl函数
- 开发者和程序员需要关注的42个播客
- 理解Java NIO
- where is path tag generated
- 两台机器实现QPS3000的服务优化
- MTK模拟器编译使用
- C# 编译器选项 /platform(指定输出平台)32位程序运行到x64平台的问题
- Node.js:node项目中连接postgresql以及基础使用
- win mysql编译_MySQL5.5在Windows7下编译的详细步骤
- Revit (6) - Teigha - LayerTable
- pc端ui图片尺寸_PC网页设计尺寸规范
- 修改nginx站点根目录总结经验
- 企业使用Windows Sysprep工具来封装Win10、Win11操作系统(最新最全)
- maven install报The forked VM terminated without saying properly goodbye. VM crash or System.exit call
- vue——ViewModel 简易原理
- 小酷智慧地图3D导览v1.0.84 打卡定位 地图打卡
- 清醒看自己,糊涂看别人
- 阿里云备案一般要多久时间?快速通过阿里云APP进行域名备案方法
- 微信小程序开发——JS中字符和数组的操作