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

题目描述

小雪非常关注自行车比赛,尤其是环滨湖自行车赛。一年一度的环滨湖自行车赛,需要选手们连续比赛数日,最终按照累计得分决出冠军。今年一共有 N 位参赛选手。每一天的比赛总会决出当日的排名,第一名的选手会获得 N 点得分,第二名会获得 N-1 点得分,第三名会获得 N-2 点得分,依次类推,最后一名会获得 1 点得分。保证没有选手会排名相同。

在之前的数日较量中, N 位选手已经分别累计了一些分数。现在即将开始的是最后一天的比赛。小雪希望知道有多少位选手还有可能获得最终的冠军,也就是说还有多少选手有可能通过最后一天的比赛获得累计总分第一名

输入输出格式

输入格式:

第一行输入一个整数 N,表示参赛选手总数,保证 3<=N<=300000。

之后 N 行,其中第 i 行输入一个整数 B[i]表示第 i 位选手已经获得的累计分数,满足0<=B[i]<=2000000。

输出格式:

输出只有一行,只输出一个整数,表示有多少位选手有可能获得最终的冠军。

输入输出样例

输入样例#1:

3
8
10
9

输出样例#1:

3

输入样例#2:

5
15
14
15
12
14

输出样例#2:

4

说明

对于 20%的数据, 3<=N<=600。

对于 50%的数据, 3<=N<=10000。

对于 100%的数据, 3<=N<=300000 且 0<=B[i]<=2000000。

题目大意:每个人有一些分数,然后进行一次比赛,最后一名得分1,第一名得分n,问有几个人可以成为第一名。

题解:将分数从小到大排序,如果当前的分数大于等于最高分数+1,那么后面的分数加上n肯定比最高分数加1大。

直接输出return 0;

坑点:别信样例

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[300005];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",a+i);
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++){
        if(a[i]+n>a[n]){
            printf("%d\n",n-i+1);
            return 0;
        }
    }
    printf("0\n");
    return 0;
}
时间: 2024-10-10 04:53:16

洛谷 P2777 [AHOI2016初中组]自行车比赛的相关文章

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

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:洛谷P2777 正解:贪心 解题报告: 考虑每次的匹配情况,很容易发现,每次都是当前的取最大值,然后其余的交叉匹配,维护一个区间$max$就好了,每次移动. #include <iostream> #include <cstdio>

洛谷 2777 [AHOI2016初中组]自行车比赛

[题解] 为了让某个选手能够获得总分第一,就让他最后一天的得分是n,并且让别的选手的得分的最大值尽量小.于是我们先把目前积分排序,并且让他们最后一天的排名刚好与积分排名相反.即某个积分排名为X的人最后一天排名为n-X+1. 然后我们在里面找出最高总分mx. 接着依次枚举每个人,如果他的积分加上n≥mx,那么这个人就有可能获得冠军. #include<cstdio> #include<algorithm> #define N 300010 #define rg register us

洛谷⑨月月赛Round2 官方比赛 OI

自评: (完成时间3.5时) 第一题 模拟 虽然A了,代码敲得有点慢 第二题 最短路 第一次敲对了,又考虑数据范围和答案范围,改错了,100分改成42分.QAQ. 第三题 乱搞 80分 还可以(因为没思路啊),不过也有A了的 如果第二题不手贱的话,day1 280分,day2再随便写点,妥妥的一等. 可惜没如果.(也还好不是联赛). P3392 涂国旗 10通过 267提交 题目提供者kkksc03 标签 难度普及- 提交 讨论 题解 最新讨论 快点给钱 这不就是荷兰国旗问题吗 重复题目 题目描

[题解]洛谷比赛『期末考后的休闲比赛2』

[前言] 这场比赛已经结束了有几天,但我各种忙,虽然AK但还是没来得及写题解.(我才不会告诉你我跑去学数据结构了) T1 区间方差 (就不贴题好了) 首先可以推公式(我们可以知道,线段树然而并不能通过初中学过的方差公式在log(L)内求出方差): (s2表示方差,L表示区间长度,xi表示区间的每一项,最后一个x上画了一根线表示这些数据的平均数) 用二项式定理完全平方公式可得: 再次展开: 另外,再代入以下这个 得到了: 然后继续吧.. 然后duang地一声合并同类项,于是我们得到了: 然后可以高

洛谷OJ P1074 靶形数独 解题报告

洛谷OJ P1074 靶形数独 解题报告 by MedalPluS 题目描述  小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶形数独”,作为这两个孩子比试的题目. 靶形数独的方格同普通数独一样,在 9 格宽×9 格高的大九宫格中有 9 个 3 格宽×3 格高的小九宫格(用粗黑色线隔开的).在这个大九宫格中,有一些数字是已知的,根据这些数字,利用逻辑推理,

洛谷1001 A+B Problem

洛谷1001 A+B Problem 本题地址:http://www.luogu.org/problem/show?pid=1001 题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9).注意1.pascal使用integer会爆掉哦!2.有负数哦!3.c/c++的main函数必须是int类型,而且最后要return 0.这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求! 好吧,同志们,我们就从这一题开始,向着大牛的路进发.“任何一个伟大的思想,都有一个微不足道的

洛谷 P1855 榨取kkksc03 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1855 题目描述 洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望. Kkksc03的时间和金钱是有限的,

洛谷 P1855 榨取kkksc03

题目描述 洛谷2的团队功能是其他任何oj和工具难以达到的.借助洛谷强大的服务器资源,任何学校都可以在洛谷上零成本的搭建oj并高效率的完成训练计划. 为什么说是搭建oj呢?为什么高效呢? 因为,你可以上传私有题目,团队外别人是无法看到的.我们还能帮你们评测! 你可以创建作业,给组员布置任务,查看组员的完成情况,还可以点评任意一份代码! 你可以创建比赛!既可以是oi赛制还可以是acm赛制!既可以是团队内部的私有比赛,也可以公开赛,甚至可以指定谁可以参加比赛.这样,搞“x校联赛”最合适不过了.洛谷凭借

洛谷 P1001 A+B Problem

题目描述 输入两个整数a,b,输出它们的和(|a|,|b|<=10^9). 注意 1.pascal使用integer会爆掉哦! 2.有负数哦! 3.c/c++的main函数必须是int类型,而且最后要return 0.这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求! 好吧,同志们,我们就从这一题开始,向着大牛的路进发. “任何一个伟大的思想,都有一个微不足道的开始.” 输入输出格式 输入格式: 两个整数以空格分开 输出格式: 一个数 输入输出样例 输入样例#1: 20 30 输出样