小蓝与捉迷藏

题目 小蓝与捉迷藏

image-f0b12881

思路分析

image-9aa48966

代码实现

#include<bits/stdc++.h>

using namespace std;

#define endl '\n'

#define int long long

const int N=1e5+10;

int a[N];

int n;

bool check(int x){

    int sum=0;//计算所有人可以当捕手的次数

    for(int i=0;i<n;i++)

        sum+=x-a[i];//每个人可以当捕手的次数

    if(sum>=x)//玩x轮需要x个捕手

        return true;

    return false;

}

signed main()

{

    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

    cin>>n;

    int maxv=0;

    for(int i=0;i<n;i++){

        cin>>a[i];

        maxv = max(maxv, a[i]);

    }

    int l=maxv,r=2e9;

    while(l<r){

        int mid=l+r>>1;

        if(check(mid))  r=mid;

        else    l=mid+1;

    }

    cout<<r<<endl;

    return 0;

}

同类题型

视频讲解


⬅️ 学生和导师 🏠 00-刷题理模型 ➡️ 小蓝与换装大赛