本文主要是介绍【贪心】校报面试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
暑假结束了,10届的莘莘学子也迎来了他们的大学生活。
刚刚步入大学的新生们,面对着与高中迥然相异的大学,许多选择也都摆在了他们面前,因此双眼不免应接不暇。
作为大学,众多的社团是大学生活之所以精彩纷呈的一个重要元素,它们不仅能丰富同学们的校园生活,还能提高同学们的综合能力。而想进入这些社团,你必须经过多方面的角逐,它包括一轮轮的面试和笔试。
台州学院报就是这样一个综合性的平台,要进入校报,必须经过面试、笔试、再面试三轮流程。由于有两轮面试,所以面试的时间必须规划好,尽量减少每个人的平均等待时间,以便提高效率。
那么,问题就来了。对于面试者来说,如何用最有效的时间充分地、全面地展示自己,成了他们必须要考虑的一个问题;而对于校报的工作人员来说,如何定位好每轮面试的时间及每位面试者的时间,他们也要有个初步的策划。所以,根据每个人表达需要的时间,为面试的顺序做出安排,使得每个面试者平均等待时间最少。
作为一位acmer,请你帮助校报的工作人员安排一下校报的面试顺序。
输入
输入有多组测试数据
每组数据包含两行
第一行为N(N<=17000)
第二行分别表示第1个人到第N个人每人的表达时间T1,T2,…,Tn(Ti不超过100,面试时间可以为0),每个数据之间有1个空格。
输出
这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
样例输入
5
10 20 30 40 50
样例输出
40.00
分析:
蛮简单的贪心的,意思就是话少的先讲、大家就不用等了。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int N;
while(cin>>N)
{
int T[17001];
for (int i=0;i<N;i++)
{
cin>>T[i];
}
sort(T,T+N);
double sum=0,d=0;
for (int i=0;i<N-1;i++)
{
d+=T[i];
sum+=d;
}
sum=sum*1.0/N;
printf("%.2lf\n",sum);
}
return 0;
}
这篇关于【贪心】校报面试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!