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个人排队的一种 ...
随机推荐
- 下载的php_yal.dll文件添加到php的ext
下载的php_yal.dll文件添加到php的ext http://pecl.php.net/package/yaf/3.0.6/windows yaf. use_namespace=1 ;;exte ...
- window环境下在anconda中安装opencv
今日学习CNN神经网络,在用keras框架下搭建一个简单的模型的时候需要import cv2,我尝试了一下几种方法: 1. 在prompt输入 pip intall opencv-python 出现如 ...
- va_start和va_end使用详解(转载)
转自:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html 本文主要介绍va_start和va_end的使用及原理. 在以前 ...
- 10.11 NOIP模拟题(1)
/* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...
- MySQL-ProxySQL中间件(二)| Admin Schemas介绍
目录 MySQL-ProxySQL中间件(一)| ProxySQL基本概念: https://www.cnblogs.com/SQLServer2012/p/10972593.html ...
- deepin 安装maven
1.在官网 http://maven.apache.org/download.cgi 下载mvn包 2.新建mvn目录 mkdir /usr/local/mvn 把压缩包解压到mvn目录下面 修 ...
- Linux学习笔记之Linux系统启动过程
Linux系统的启动过程可以分为五个阶段: 内核的引导 运行init 系统初始化 建立终端 用户登录系统 1.内核引导: 当计算机打开电源后,首先进行BIOS开机自检,按照BIOS中设置的启动设备(一 ...
- Java多线程(五)停止线程 interrupt
调用interrupt方法仅仅是在当前线程中打了一个停止的标记,并不是真正停止线程. this.interrupted() :测试当前线程是否已经中断,执行后具有将状态标志清除为false的功能 is ...
- Maven之项目搭建与第一个helloworld(多图)
这次记录第一个搭建一个maven的helloworld的过程. 转载 1.搭建web工程肯定得new 一个 maven工程,假如project中没有直接看到maven工程,那么选择Other,然后在W ...
- 计算科学(转自wiki)
计算科学(也称科学计算 scientific computation 或 SC)是一个快速增长的多学科领域,使用先进的计算能力来理解和解决复杂的问题. 计算科学包括三个不同的方面: 1. 开发用于解决 ...