P1223 排队接水
题目描述
有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。
输入输出格式
输入格式:
输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。
输出格式:
输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
输入输出样例
说明
n<=1000
ti<=1e6,不保证ti不重复
当ti重复时,按照输入顺序即可(sort是可以的)
//手写
#include<bits/stdc++.h>
using namespace std;
int main()
{
;
],b[]={},c[]={};
cin>>n;
;i<=n;i++) cin>>a[i],b[i]=a[i];
sort(a+,a++n);
;i<=n;i++)
{
;j<=n;j++){
if(a[i]==b[j])
b[j]=-,cout<<j<<" ";
}
ans+=a[i-];
a[i]+=a[i-];
}
printf("\n%.2lf",ans/n);
}
//下面是比较高端的操作
1.pair数组
当有两个元素需要绑定在一起的时候可以用结构体 , 此时也可以用 pair 数组去替代结构体 。
http://www.cnblogs.com/ccut-ry/p/7606787.html
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
double sum= 0.0f;
pair<];
scanf("%d",&n);
;i<n;i++)
scanf(;
sort(a,a+n);
;i<n;i++)
{
sum+=a[i].first*(n-i-);
printf("%d ",a[i].second);
}
printf("\n%.2lf",sum/n);
;
}
2.结构体
#include<bits/stdc++.h>
using namespace std;
struct water{
int time,num;
}p[];
bool comp(water a,water b)
{
if(a.time!=b.time)
return a.time<b.time;
return a.num<b.num;
}
int n;
double sum;
int main()
{
scanf("%d",&n);
; i<=n; i++) { //输入时间并重置序号
scanf("%d",&p[i].time);
p[i].num=i;
}
sort(p+,p+n+,comp);
;i<=n;i++)
{
printf("%d ",p[i].num);
sum+=i*p[n-i].time;
}
sum/=n;
printf("\n%.2f",sum);
;
}
3.循环
#include<bits/stdc++.h>
#define for(a,c,e) for(int a=c;a<=e;a++)
#include<iomanip>
using namespace std;
int main()
{
];
double sum;
scanf("%d",&n);
,n)
scanf("%d",&a[i]);
,n)
{
,m2=;
,n)
if(a[j]<m2)m1=j,m2=a[j];
printf("%d ",m1);
a[m1]=;
sum+=m2*(n-i);
}
//printf("\n%.2f",sum/n);
cout<<endl<<)<<sum/n;
;
}
P1223 排队接水的更多相关文章
- 洛谷——P1223 排队接水
P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...
- 洛谷 P1223 排队接水
洛谷 P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共 ...
- luogu P1223 排队接水 x
P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这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个人排队的一种 ...
随机推荐
- ios28--UIScrollView
// // ViewController.m // UIScrollVIew #import "ViewController.h" @interface ViewControlle ...
- Bing Maps进阶系列九:使用MapCruncher进行地图切片并集成进Bing Maps
Bing Maps进阶系列九:使用MapCruncher进行地图切片并集成进Bing Maps 在Bing Maps开发中,由于各种应用功能的不同,更多的时候用户可能需要将自己的一部分图片数据作为地图 ...
- ORACLE分区表发挥性能
1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能. 1.1.1 分区表的建立: 某公司的每年产生巨大的销售记录,DBA向公司建议 ...
- Cpp module
- 函数bsxfun,两个数组间元素逐个计算的二值操作
转自http://www.cnblogs.com/rong86/p/3559616.html 函数功能:两个数组间元素逐个计算的二值操作 使用方法:C=bsxfun(fun,A,B) 两个数组A合B间 ...
- php做APP接口开发,接口的安全性
1.当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session(或者保存在redis)中,将生成的ac ...
- Linux学习笔记之Linux shell脚本运行出现问题:bash: ./test: bin/sh: bad interpreter: No such file or directory
问题: 在Linux系统中使用“vi test.sh”命令创建.sh文件,保存文件(:wq)并赋予权限(chmod +x test.sh)后,执行(./test.sh),出现问题:“bash: ./t ...
- DHTML_____如何编写事件处理程序
<html> <head> <meta charset="utf-8"> <title>如何编写事件处理程序</title&g ...
- new mysqli_ and 旧mysql
旧的php处理语法: 1. <select name="s" onChange="redirec()"> <option selected&g ...
- c++类的内存布局
问题: 考察了reinterpret_cast和static_cast的区别.顺道发现了一个可以查看c++内存布局的工具(在VS中). 结果: 前两个输出的地址形同,后一个不同. class A{in ...