1 条题解
-
1
luogu-P1223题解
主要题意
有 个人接水,安排他们的排队方式使每人平均等待时间最少。
解题思路
因为前面的人接水时间越少,后面的人等待时间也就越少。因此从小到大排序。
为了同时保存每个人原来的输入下标,使用结构体保存输入数据。
因此,平均时间就是对于每个人来说他前面的总时间求和再除以 。
注意输出两位小数。
上代码!
#include<bits/stdc++.h> using namespace std; struct node { int k,l; }a[1010]; bool cmp(node x,node y) { return x.k<y.k; } double cnt=0; int n; int main(void) { cin>>n; for(int i=1;i<=n;i++) cin>>a[i].k,a[i].l=i; sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) cout<<a[i].l<<" "; puts(""); for(int i=1;i<=n;i++) for(int j=1;j<i;j++) cnt+=a[j].k; printf("%.2lf",cnt/n); }
- 1
信息
- ID
- 5281
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 2
- 标签
- 递交数
- 45
- 已通过
- 25
- 上传者