其他分享
首页 > 其他分享> > P2777 [AHOI2016初中组]自行车比赛

P2777 [AHOI2016初中组]自行车比赛

作者:互联网

https://www.luogu.com.cn/problem/P2777
模拟,贪心,排序
黄色题
思路:

一个人得冠军就要使其得分尽量大,其他人总分尽量小

应用贪心的策略,一个人最有可能拿冠军的情况是本局得分为n。 同时其他人的分数按总分多的分的越少。

那么我们可以发现,当b数组有序(递减)时,一个人在这场比赛中的得分已经定下了,就是按其排名给分。所以我们就能预见他们的总分,我们取其最大值作为衡量标准maxx.

对于每个人,如果他得n分仍不能超过maxx,那么他,包括分比他低的都不能拿冠军。反之,可行。


 

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
int maxx,ans,b[300010],n;
int cmp(const int &x,const int &y)
{
    return x>y;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    scanf("%d",&b[i]);
    sort(b+1,b+1+n,cmp);
    for(int i=1;i<=n;i++)
    maxx=max(maxx,b[i]+i);
    for(int i=1;i<=n;i++)
    if(b[i]+n>=maxx)
    ans++;
    else
    break;
    printf("%d",ans);
}

 

标签:maxx,const,AHOI2016,int,总分,ans,初中,include,P2777
来源: https://www.cnblogs.com/2elaina/p/16560489.html