HDU1001 Easy h-index

点击打开链接

Easy h-index

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 761    Accepted Submission(s): 213


Problem Description
比赛题目:
http://acm.hdu.edu.cn/downloads/2018ccpc_hn.pdf

The
h -index of an author is the largest where he has at least  h  papers with citations not less than  h .
Bobo has published many papers.
Given  a0,a1,a2,,an  which means Bobo has published  ai  papers with citations exactly  i , find the  h -index of Bobo.

Input
The input consists of several test cases and is terminated by end-of-file.
The first line of each test case contains an integer  n.
The second line contains  (n+1) integers  a0,a1,,an.
Output
For each test case, print an integer which denotes the result.
## Constraint
1n2105
0ai109
* The sum of  n does not exceed  250,000.
Sample Input
 
  
1
1 2
2
1 2 3
3
0 0 0 0
Sample Output
 
  
1
2
0
 

分析:

作者的h指数是一个最大的h,h代表至少有h篇文章被引用h次

a[i]表示被引用i次的文章个数,i从0开始,求作者的h指数

#include <cstdio>
const int N = 2e5+10;
int a[N];
int main()
{
    int n;
    while (scanf("%d", &n) == 1) {
        for (int i = 0; i <= n; ++ i)
            scanf("%d", a + i);
        //预处理前缀和
        for(int i=n-1;i>=0;i--)
            a[i]+=a[i+1];
        for(int i=n;i>=0;i--)
        {
            if(a[i]>=i){
                printf("%d\n",i);
                break;
            }
        }
    }
}


猜你喜欢

转载自blog.csdn.net/qq_40507857/article/details/81045451
今日推荐