2014 ACM/ICPC Asia Regional Anshan Online


2014 ACM/ICPC Asia Regional Anshan Online
-----解題報告
1.HDOJ 5003
タイトル:
水問題、スーパー大水問題.数値配列をあげて、まず降順に並べ替えて、それから0.95^(i-1)*aiで解きます.計算しながら和を求める.
コード:
int num[550];
double float_num[55];

void init()
{
    for (int i = 1; i <= 50; ++i)
        float_num[i] = pow(0.95, i - 1);    //       
}

bool cmp(int A, int B)   
{
    return A > B;    //    
}

int main()
{
#ifdef LOCAL
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);
#endif // LOCAL
    init();

    int T;
    int n;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        for (int i = 1; i <= n; ++i)
            scanf("%d", &num[i]);

        sort(num + 1, num + n + 1, cmp);

        double sum = 0;

        for (int i = 1; i <= n; ++i)
            sum += float_num[i] * (double)num[i];

        printf("%.10lf
", sum); } return 0; }