题目描述

有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

说明

n<=1000

ti<=1e6,不保证ti不重复

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

题目需要的注意:

1)对于其排序时,要用pair或结构体,这样才能取下标。

2)注意等待时间,是除了正在取水的人外其他人所需要等待的时间。

C++代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int maxn = ;
typedef pair<int,int> pii;
pii a[maxn];
bool cmp(pii a, pii b){
return a.first < b.first;
}
int main(){
int n;
scanf("%d",&n);
for(int i = ; i < n; i++){
scanf("%d",&a[i].first);
a[i].second = i+;
}
sort(a,a+n,cmp);
double sum = 0.0;
for(int i = ;i < n;i++){
sum += a[i].first * (n - i - );
printf("%d ",a[i].second);
}
printf("\n%.2lf\n",sum/n);
return ;
}

(贪心)P1223 排队接水 洛谷的更多相关文章

  1. 洛谷 P1223 排队接水

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

  2. 洛谷——P1223 排队接水

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

  3. luogu P1223 排队接水 x

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

  4. 问题 A: 【贪心】排队接水

    问题 A: [贪心]排队接水 时间限制: 1 Sec  内存限制: 128 MB[命题人:外部导入] 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种 ...

  5. 洛谷 P1223排队接水【贪心】

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

  6. (Java实现) 洛谷 P1223 排队接水

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

  7. P1223 排队接水

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

  8. 洛谷P1223 排队接水

    https://www.luogu.org/problem/P1223 #include<bits/stdc++.h> using namespace std; struct st { i ...

  9. 【贪心】洛谷2019 OI春令营 - 普及组 作业

    [P3817 小A的糖果 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. [贪 ...

随机推荐

  1. 百度云虚拟主机配置 Thinkphp5.1

    材料 服务器:百度云虚拟主机(nginx+php7.0+linux) Thinkphp 5.1 问题 百度云默认目录为/webroot,但是我们的需求是将项目存放到/webroot/public下面. ...

  2. 使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

    使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

  3. 【C/C++】实现牛顿迭代

    #include<bits/stdc++.h> using namespace std; /*(x+2)^2 +1 -2(x-1)^2+7 */ double f(double x){ - ...

  4. Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线

    在方法CreateLine内完成以下代码: 01 public void CreateLine() 02 { 03 PromptPointOptions ppo = new PromptPointOp ...

  5. Photoshop独立安装包下载页面

    下载页面地址:https://helpx.adobe.com/cn/creative-cloud/kb/creative-cloud-apps-download.html

  6. 使用Google ZXing生成和解析二维码

    pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  7. mysql 下载地址

    新浪的镜像站 http://mirrors.sohu.com/mysql yum安装: 首先要到MySQL yum库的下载页面http://dev.mysql.com/downloads/repo/y ...

  8. java8的版本对组合式异步编程

    讨论了Java 8中的函数式数据处理,它可以将对集合数据的多个操作以流水线的方式组合在一起.本节继续讨论Java 8的新功能,主要是一个新的类CompletableFuture,它是对65节到83节介 ...

  9. [ZJOI2009]函数 题解

    题目链接:[ZJOI2009]函数 对于$n=1$的情况,直接输出$1$ 对于$n>1$的情况,由于我们可以将图上下反转,所以第$k$层的情况可以被转成第$n-k+1$层 规律自己打个表可以推出 ...

  10. jupyter更改存储路径

    实习了两个月爬虫,第一个月学到了不少东西,尤其是真实链接的抓取还有定时爬虫以及一些常规的反爬策略. 但是感觉第二个月的工作内容和预想的轨道渐渐脱离,所以选择了辞职,停下来重新看一下以后的路该怎么走,调 ...