牛客多校第十场 Game(前缀平均值)

题意:
牛客多校第十场 Game(前缀平均值)_第1张图片
牛客多校第十场 Game(前缀平均值)_第2张图片
牛客多校第十场 Game(前缀平均值)_第3张图片

除了第一列的方块都能这样操作,问最后方块的最小高度是多少。

思路:
可以二分最大高度是多少,那么每次可以将前缀大于这个高度的块填入空缺中。
等价于最大前缀平均值。

#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

typedef long long ll;
const int maxn = 1e6 + 7;

int main() {
    int T;scanf("%d",&T);
    while(T--) {
        int n;scanf("%d",&n);
        ll sum = 0;
        for(int i = 1;i <= n;i++) {
            int x;scanf("%d",&x);
            sum += x;
        }
        if(sum % n == 0) {
            printf("%lld\n",sum / n);
        } else {
            printf("%lld\n",sum / n + 1);
        }
    }
    return 0;
}

你可能感兴趣的:(#,其他比赛题目)