7 solutions

  • 0
    @ 2021-10-17 21:42:07

    P1072. 排队打水

    题意概述

    不同的人有不同的打水时间,根据他们的打水时间,用一个最优方案使得所有人的等候时间最短

    题意分析

    为了尽快让大家的等待时间较少,就应该把打水时间较短的放到最前面(严重怀疑这是一个排序题,或者说就是排序题),我们对打水时长做一个升序排序,然后依次计算每个人的等待时间最后累加即可。

    可行代码

    #include <algorithm>
    #include <iostream>
    using namespace std;
    typedef long long ll;
    int main() {
        ll all;
        cin >> all;
        ll time[all];
        for (ll i = 0; i < all; i++)
            cin >> time[i];
        sort(time, time + all);
        ll sum = 0;
        for(ll i = 0; i < all; i++){
            sum += time[i] * (all - i - 1);
        }
        cout << sum << endl;
        return 0;
    }
    

    END

    Information

    ID
    76
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    6
    Tags
    # Submissions
    221
    Accepted
    73
    Uploaded By