A. Easy h-index
错误理解:看题目第一眼,水题,只要输入的时候统计下数据,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;
}