题目链接: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 ",temp+(1e-10)); } return 0; }