2 solutions
-
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); }
Information
- ID
- 5281
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 3
- Tags
- # Submissions
- 85
- Accepted
- 44
- Uploaded By