luogu P1223 排队接水 x
P1223 排队接水
题目描述
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
输入输出格式
输入格式:
输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。
输出格式:
输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
输入输出样例
10
56 12 1 99 1000 234 33 55 99 812
3 2 7 8 1 4 9 6 10 5
291.90
说明
n<=1000
ti<=1e6,不保证ti不重复
思路:
贪心:先让花时间最少的人先接水,这样等的时间是最少的(不懂的话可以手动模拟一下~)
但是因为最后还要输出方案,所以需要开结构体,让编号跟着时间一起进行快排
坑点:
千万不要忘记输出方案!(本来想用map做排序的我发现根本不会用map,蒟蒻瑟瑟发抖...)
如果不会用结构体的话,还可以用两个数组来做,一个记录编号,一个记录时间,然后手写排列,两个一起进行排序.
代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
#define LL long long using namespace std; const int M = ;
int n;
double ans; struct A{
int z,num;
bool operator < (const A &qwq)const
{
return z < qwq.z;
}
}t[M]; void Dengren(int times,int persons)
{
ans+=(double)times*persons;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lld",&t[i].z),t[i].num=i;
sort(t+,t++n);///从小到大
for(int i=;i<=n;i++)
{
printf("%lld ",t[i].num);
Dengren(t[i].z,n-i);
}
printf("\n");
ans/=n;///因为最后输出的是平均等待时间
printf("%.2lf",ans);
return ;
}
luogu P1223 排队接水 x的更多相关文章
- 洛谷——P1223 排队接水
P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...
- 洛谷 P1223 排队接水
洛谷 P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共 ...
- (贪心)P1223 排队接水 洛谷
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- 洛谷 P1223排队接水【贪心】
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- P1223 排队接水
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- (Java实现) 洛谷 P1223 排队接水
题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行,第一行为n:第二行分别 ...
- 洛谷P1223 排队接水
https://www.luogu.org/problem/P1223 #include<bits/stdc++.h> using namespace std; struct st { i ...
- sicily 1016. 排队接水--课程作业
1016. 排队接水 Time Limi ...
- 问题 A: 【贪心】排队接水
问题 A: [贪心]排队接水 时间限制: 1 Sec 内存限制: 128 MB[命题人:外部导入] 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种 ...
随机推荐
- Prometheus Querying Function rate() vs irate()
rate() rate(v range-vector) calculates the per-second average rate of increase of the time series in ...
- k8s-kubernettes-sercet存储
Secret Secret存在意义 Secret解决了密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中.Secret可以以Volume或者环境变量的方 ...
- HTML标签-->列表,表格
只有努力奔跑,才能一直停留在原地. 无序列表 <ul><!--默认列表编号为(实心圆)--> <li>第一项</li> <li>第二项< ...
- yum安装nginx(Centos)
测试人员需要了解Nginx?nginx的别名有很多:中间件,HTTP服务器,代理服务器等,这些名字都是作用的一个体现.在实际项目中,前后端分离,负载均衡等也是通过Nginx实现的,知己知彼,百战百胜. ...
- nodejs 和 js
JavaScript组成:ECMAScript(定义这门语言的基础,比如语法.数据类型.结构以及一些内置对象等).DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法).BOM(基于EC ...
- Maven - 配置setting.xml
1.配置本地库路径 <localRepository>C:/fyliu/mvn/repo</localRepository> 2.配置中央仓库 <mirror> & ...
- 存储过程实例基于postgersql
数据库用的是postgersql 数据库管理工具是DBeaver mybatis操作数据库基于jdbcTemplate 1.写的存储方法放在数据库下面的Procedures目录下 function ...
- day 15 模块 相对导入
自定义模块: 什么是模块:本质就是.py文件,封装语句的最小单位. 自定义模块:实际上就是定义.py,其中可以包含:变量定义,可执行语句,for循环,函数定义等等,他们统称模块的成员. 模块的运行方式 ...
- 【网络安全】window 快速搭建 ftp 及 多种访问方式
在局域网里面使用ftp传输文件比使用qq等软件传输速度快很多,但是搭建ftp很多时候需要下载相应的支持软件,其实不必下载相关的软件,因为window自带ftp功能. 演示操作系统:windows10 ...
- java io 文件读写操作
写: import java.io.*; String filePath= "F:\\test.txt"; FileWriter fwriter = null; fwriter = ...