西电OJ - 1042 另一个简单游戏
题目链接:http://acm.xidian.edu.cn/problem.php?id=1042
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
/****************************************************************************************************************
题意:和上次西电网络赛 G 题相似,这次较简单,规定了每次可以选两个数进行处理
思路:
1,从小到大排序,将前两个数求平均数
2,将平均数存入数列,重新排序,重复1
3,详见之前的 西电网络赛-G
4,之前没见过精度问题,wa了一下午,然后看到有人说要用1e-10精度,不知道什么意思,但是AC了
(补上:学习精度)
****************************************************************************************************************/
double a[105];
int main()
{
int T,N;
cin>>T;
while(T--)
{
cin>>N;
//memset(a,0,sizeof(a));
for(int i = 0;i < N;i ++)
cin>>a[i];
sort(a,a+N);
int le=N,id=0;
double temp;
if(N == 1)
temp=a[0]/2;
else{
while(le > 1)
{
temp=(a[id]+a[id+1])/2;
id++;
a[id]=temp;
sort(a+id,a+N);
le--;
}
}
printf("%.2lf\n",temp+(1e-10));
}
return 0;
}
浙公网安备 33010602011771号