题目描述

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

输入格式

第一行为一个整数 nn。

第二行 nn 个整数,第 ii 个整数 T_iTi​ 表示第 ii 个人的等待时间 T_iTi​。

输出格式

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

输入输出样例

输入 #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≤1000,ti​≤106,不保证 t_iti​ 不重复。

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

解题思路:

给出了每个人的接水时间,肯定是用时最少的人排在最前面大家浪费的时间最少,有个小细节就是当前面的人接水的时候后面的人都在等,也就是说算平均时间的时候也要加上,d=d+a[i]*(b-i-1)就是排在a[i]后的人都要等他接完下一个才能接。

#include<bits/stdc++.h>
using namespace std;
int a[1010];
int c[1010];
int main(void)
{int b;double d=0.0;cin>>b;memset(c,0,sizeof(b));for(int i=0;i<b;i++){cin>>a[i];c[i]=a[i];//再开一个数组排完序后输出下标表示是第几个人}sort(a,a+b);for(int i=0;i<b;i++){for(int j=0;j<b;j++){if(a[i]==c[j]){cout<<j+1<<" ";c[j]=0;}}}for(int i=0;i<b;i++){d=d+a[i]*(b-i-1);//这个就是算总共浪费的时间了}cout<<endl;printf("%.2lf\n",d/b);return 0;
}

排队接水(贪心算法)相关推荐

  1. [排序不等式] 排队打水(排序不等式+贪心)

    文章目录 0. 前言 1. 排序不等式+贪心 0. 前言 经典的排序不等式问题,也是一个简单的小学数奥问题. 1. 排序不等式+贪心 913. 排队打水 贪心思路: 让最墨迹的人最后打水,即从小到大排 ...

  2. 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)

    贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...

  3. P1223 排队接水(贪心算法)

    题目描述 有 nn 个人在一个水龙头前排队接水,假如每个人接水的时间为 T_iTi​,请编程找出这 nn 个人排队的一种顺序,使得 nn 个人的平均等待时间最小. 输入格式 第一行为一个整数 nn. ...

  4. 17行代码AC_51Nod - 2133 排队接水(贪心)

    励志用少的代码做高效表达 贪心算法模板题 贪心算法简单来讲即自顶向下,求解出每个子最优解,且每个子问题不会对下一个问题产生影响 题意:n个人排队接水,问如何排序才能使总等待时间最短,(正在接水的人和没 ...

  5. 贪心算法之柠檬水java

    贪心算法的基本思想: 贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解.用局部解构造全局解,即从问题的某一个初始解逐 ...

  6. 贪心算法:860.柠檬水找零

    题目描述: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元 ...

  7. 算法提高 排队打水问题 无聊刷个水题

    算法提高 排队打水问题 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述 有n个人排队到r个水龙头去打水,他们装满水桶的时间t1.t2---..tn为整数且各不相等,应如何安排他们的打 ...

  8. Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

    860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...

  9. java排队算法_贪心算法-排队问题-JAVA

    自己最近在学一些算法,试着把网上的贪心算法的例题编出来,JAVA版. [题目描述] 在一个医院B 超室,有n个人要做不同身体部位的B超,已知每个人需要处理的时间为ti,(0 输入数据:第1行一个正整数 ...

最新文章

  1. KMP算法的实现以及改进
  2. java中多态_Java中多态的理解
  3. 非对称性密钥加密 java 实例_JAVA实现非对称加密
  4. Spring vs Guice:重要的一个关键区别
  5. Cowrie蜜罐的部署(ubt亲测)
  6. Application Virtualization 4.5 部署之(二)
  7. Java内存运行机制
  8. Linux静态库与动态库
  9. vue中获取输入框中得到值_如何获取vue input的值
  10. Bitmap和Drawable的互相转换
  11. Tomcat8中URI不支持{}|等特殊字符解决方案
  12. Python访问MySQL数据库速度慢解决方法
  13. 分布式存储之Ceph软件安装及使用
  14. StackPanel与Grid交叉使用
  15. VS2010过期密钥
  16. 非功能需求分析--web开发课内实例
  17. 超详细的LSA内容解析及SPF算法分析,一看就懂
  18. 4.龙芯2k1000 系统制作及安装
  19. 1920x1080平板 android,高清是王道!1080P分辨率屏幕平板大搜罗
  20. c语言rand再哪个头文件里,c语言下rand函数在哪个头文件中

热门文章

  1. Python基础 if判断语句 篇
  2. MathCast 免费开源 数学公式 演算编辑器
  3. linux/git命令
  4. 数字云栖,与您共享极致计算与创新进化的科技盛宴
  5. win32 009
  6. Windows更新无法启动或关闭解决办法
  7. PulpSolverError: Pulp: Error while executing
  8. 数电实验 数字电子钟设计 基于quartus 实现计时校时闹钟秒表稍复杂音频 分享电路图设计以及工程文件
  9. 计算机系统(1)实验二 LC-3机器码编程实验
  10. 使用python解析Java类