西电OJ - 1042 另一个简单游戏

来源:互联网 发布:网络食品安全专项整治 编辑:程序博客网 时间:2024/05/16 07:31

题目链接: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;}


0 0