题目描述

有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)相关推荐

  1. 信息学奥赛一本通 1319:【例6.1】排队接水 | 洛谷 P1223 排队接水

    [题目链接] ybt 1319:[例6.1]排队接水 洛谷 P1223 排队接水 [题目考点] 1. 贪心 2. 贪心选择性质的证明 要想证明贪心选择可以得到最优解,只需要证明最优解包含每一次的贪心选 ...

  2. 深入理解 操作系统 SJF算法(以洛谷P1223题为例)

    CPU Scheduling Algorithms 重要的CPU调度算法如下: FCFS Scheduling(First-Come, First-Served) SJF Scheduling(Sho ...

  3. 洛谷——P1223 排队接水

    题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...

  4. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  5. 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计

    P5703 [深基2.例5]苹果采购 [深基2.例5]苹果采购 - 洛谷 P5703 [深基2.例5]苹果采购(python3实现) P5703 [深基2.例5]苹果采购(python3实现)_青少年 ...

  6. 闲来无事刷水题、简单博弈论专题、sg函数、洛谷

    记 今天闲来无事,不想刷codeforces了,到洛谷提高组训练营找几道水题刷着玩玩(虽然自己早已过了打OI的年纪)- 简单博弈论专题 P1199 三国游戏 这么考虑,由于电脑总是不能让我搭配出当前能 ...

  7. 信息学奥赛一本通 1233:接水问题 | 1950:【10NOIP普及组】接水问题 | OpenJudge NOI 1.9 15 | 洛谷 P1190 [NOIP2010 普及组] 接水问题

    [题目链接] ybt 1233:接水问题 ybt 1950:[10NOIP普及组]接水问题 OpenJudge NOI 1.9 15:接水问题 洛谷 P1190 [NOIP2010 普及组] 接水问题 ...

  8. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

    记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...

  9. [bzoj1601]灌水(洛谷P1550)

    [USACO08OCT]Watering Hole G 洛谷灌水区 传送门 D e s c r i p t i o n Description Description Farmer John已经决定把 ...

最新文章

  1. python——random.sample()的用法
  2. [转]parseUrl函数
  3. 开发者和程序员需要关注的42个播客
  4. 理解Java NIO
  5. where is path tag generated
  6. 两台机器实现QPS3000的服务优化
  7. MTK模拟器编译使用
  8. C# 编译器选项 /platform(指定输出平台)32位程序运行到x64平台的问题
  9. Node.js:node项目中连接postgresql以及基础使用
  10. win mysql编译_MySQL5.5在Windows7下编译的详细步骤
  11. Revit (6) - Teigha - LayerTable
  12. pc端ui图片尺寸_PC网页设计尺寸规范
  13. 修改nginx站点根目录总结经验
  14. 企业使用Windows Sysprep工具来封装Win10、Win11操作系统(最新最全)
  15. maven install报The forked VM terminated without saying properly goodbye. VM crash or System.exit call
  16. vue——ViewModel 简易原理
  17. 小酷智慧地图3D导览v1.0.84 打卡定位 地图打卡
  18. 清醒看自己,糊涂看别人
  19. 阿里云备案一般要多久时间?快速通过阿里云APP进行域名备案方法
  20. 微信小程序开发——JS中字符和数组的操作

热门文章

  1. 复刻了一个史上最强 Redis 6.0 版本
  2. 如何利用开源项目,帮助企业免费搭建小程序官网
  3. package.json说明
  4. JEECG_3.7开发环境搭建与代码生成器入门级教程-张代浩-专题视频课程
  5. Web安全通讯之JWT的Java实现
  6. 编程体系结构(04):JavaIO流文件管理
  7. bangteng文件夹各种方式尝试后删除不了的解决办法
  8. 前后端配合实现密码找回功能思路
  9. 基于 HanLP 的 ES 中文分词插件
  10. Maven 打包war文件