题目:Sumo and His Followers
来源:第十七届浙大城市学院程序设计竞赛(同步赛)
解题思路
有 个人,回答第
个人的问题需要
时间,求平均等待时间最少为多少?
每回答一个人 的问题,剩下
个人需要等待的总时间为
。
将 个人排队,则等待总时间为
。
所以,当 时,等待总时间最少。
C++代码
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int T;
scanf("%d", &T);
while(T){
int n;
scanf("%d", &n);
vector<int> t(n);
for(int i=0; i<n; ++i)
scanf("%d", &t[i]);
sort(t.begin(), t.end());
double sum = 0;
int k = n - 1;
for(int i=0; i<n; ++i){
sum += t[i] * k;
--k;
}
double ans = sum / n;
printf("%.2f\n", ans);
--T;
}
return 0;
}
京公网安备 11010502036488号