错误理解:看题目第一眼,水题,只要输入的时候统计下数据,if(a[i] >= i ) 就可以,wa了2发。
正确理解:h-index又称为h指数或h因子(h-factor),是一种评价学术成就的新方法。h代表“高引用次数”(high citations),一名科研人员的h指数是指他至多有h篇论文分别被引用了至少h次。
也就是说h为100,这个人就有100篇论文至少引用了100次。
题解:他要求最大h,所以我们从大到小遍历,遍历的每一个数都加起来,判断总和是不是大于等于i(i是数组下标),如果大于就结束了,输出i;否则继续累加。
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn=1e6+10;
ll a[maxn];
int main()
{
ios::sync_with_stdio(false);
ll m;
while(cin>>m)
{
for(ll i=0;i<=m;i++)
{
cin>>a[i];
}
ll sum=0;
for(int i=m;i>=0;i--)
{
sum+=a[i];
if(sum>=i)
{
cout<<i<<endl;
break;
}
}
}
return 0;
}