1060 爱丁顿数 (25 分)

题目:1060 爱丁顿数 (25 分)

英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E。据说爱丁顿自己的 E 等于87。

现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤)。

输入格式:

输入第一行给出一个正整数 N (≤),即连续骑车的天数;第二行给出 N 个非负整数,代表每天的骑车距离。

输出格式:

在一行中给出 N 天的爱丁顿数。

输入样例:

10
6 7 6 9 3 10 8 2 7 8

输出样例:

6

思路:

  • 读懂题目真的很重要,不然就会像我一样,案例输进去跑出的结果是一样的,但是一个测试点都过不了QAQ。
  • 题目想表达的是:第一天骑车距离超过1,则E就是1,第二天超过2,那E就是2了,第三天没超过3,那E还是2.(可能就是我理解力不好T^T,理解成另一个意思了我……)
    案例输入的十天里,有六天满足这种情况,所以输出6 。注意:是超过!!不能等于。还算上等于的情况就只能过测试点0和2了。
  • 按降序排序后判断和无序直接判断是差不多的,相比之下排完序后判断更好一点,因为一旦判到小于等于的情况就可以直接break,然后输出计数结果。
    直接按这种无序判断的话测试点5会答案错误,应该是边界处没处理好,或者需要特判???(没试。想这么做的可以试试)

代码:

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cctype>
 4 #include <iostream>
 5 #include <sstream>
 6 #include <cmath>
 7 #include <algorithm>
 8 #include <string>
 9 #include <stack>
10 #include <queue>
11 #include <vector>
12 #include <map>
13 using namespace std;
14
15 int cmp(int a, int b)
16 {
17     return a > b;
18 }
19
20 int main()
21 {
22     int n, e[100005];
23     scanf("%d", &n);
24     for(int i = 0; i < n; i++)
25     {
26         scanf("%d", &e[i]);
27     }
28     sort(e, e + n, cmp);
29     int sum = 0;
30     for(int i = 0; i < n; i++)
31     {
32         if(e[i] > i+1)
33             sum++;
34         else
35             break;
36     }
37     printf("%d\n", sum);
38     return 0;
39 }

总结:

  读懂读对题目是做题的开始。不然无法下手。

原文地址:https://www.cnblogs.com/Anber82/p/11408472.html

时间: 2024-10-29 19:31:51

1060 爱丁顿数 (25 分)的相关文章

PAT 乙级 1060 爱丁顿数(25) C++版

1060. 爱丁顿数(25) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数"E,即满足有E天骑车超过E英里的最大整数E.据说爱丁顿自己的E等于87. 现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(<=N). 输入格式: 输入第一行给出一个正整数N(<=105),即连续骑车的天数:第二行给出N个非负整

PAT 1060. 爱丁顿数

PAT 1060. 爱丁顿数 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数"E,即满足有E天骑车超过E英里的最大整数E.据说爱丁顿自己的E等于87. 现给定某人N天的骑车距离,请你算出对应的爱丁顿数E(<=N). 输入格式: 输入第一行给出一个正整数N(<=105),即连续骑车的天数:第二行给出N个非负整数,代表每天的骑车距离. 输出格式: 在一行中给出N天的爱丁顿数. 输入样例: 10 6 7 6 9 3 10 8 2 7 8 输出样

pat 1060 爱丁顿数(25 分)

英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N). 输入格式: 输入第一行给出一个正整数 N (≤10?5??),即连续骑车的天数:第二行给出 N 个非负整数,代表每天的骑车距离. 输出格式: 在一行中给出 N 天的爱丁顿数. 输入样例: 10 6 7 6 9 3 10 8 2 7 8 输出样例:

1060 爱丁顿数

英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N). 输入格式: 输入第一行给出一个正整数 N (≤10?5??),即连续骑车的天数:第二行给出 N 个非负整数,代表每天的骑车距离. 输出格式: 在一行中给出 N 天的爱丁顿数. 输入样例: 10 6 7 6 9 3 10 8 2 7 8 输出样例: 6 1

PTA(Basic Level)1060.爱丁顿数

英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个"爱丁顿数" E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N). 输入格式: 输入第一行给出一个正整数 N (≤105),即连续骑车的天数:第二行给出 N 个非负整数,代表每天的骑车距离. 输出格式: 在一行中给出 N 天的爱丁顿数. 输入样例: 10 6 7 6 9 3 10 8 2 7 8 输出样例: 6

PAT_B_1060 爱丁顿数

题目描述 英国天文学家爱丁顿很喜欢骑车.据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数” E ,即满足有 E 天骑车超过 E 英里的最大整数 E.据说爱丁顿自己的 E 等于87. 现给定某人 N 天的骑车距离,请你算出对应的爱丁顿数 E(≤N). 输入格式: 输入第一行给出一个正整数 N (≤10^?5?? ),即连续骑车的天数:第二行给出 N 个非负整数,代表每天的骑车距离. 输出格式: 在一行中给出 N 天的爱丁顿数. 输入样例: 10 6 7 6 9 3 10 8 2 7 8 输出样

PAT 甲级 1060 Are They Equal (25 分)(科学计数法,接连做了2天,考虑要全面,坑点多,真麻烦)

1060 Are They Equal (25 分) If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they are both saved as 0 with simple chopping. Now given the number of significant digits on a machine and two

5-20 表达式转换 (25分)

5-20 表达式转换 (25分) 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间.请设计程序将中缀表达式转换为后缀表达式. 输入格式: 输入在一行中给出不含空格的中缀表达式,可包含+.-.*.\以及左右括号( ),表达式不超过20个字符. 输出格式: 在一行中输出转换后的后缀表达式,要求不同对象(运算数.运算符号)之间以空格分隔,但结尾不得有多余空格. 输入样例: 2+3*(7-4)+8/4 输出样例: 2 3 7 4

5-17 汉诺塔的非递归实现 (25分)

5-17 汉诺塔的非递归实现   (25分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为"a")通过借助柱(标记为"b")移动到目标柱(标记为"c"),并保证每个移动符合汉诺塔问题的要求. 输入格式: 输入为一个正整数N,即起始柱上的盘数. 输出格式: 每个操作(移动)占一行,按柱1 -> 柱2的格式输出. 输入样例: 3 输出样例: a -> c a -> b c -&g