P7785 [COCI2016-2017#6] Hindeks 题解
这是本蒟蒻第十次写的题解,如有错误点请好心指出!
问题简述
这道题我们可以换另一种思路去看待它,就容易理解了:
给你一个长度为
解法综述
我们可以用桶的方法来做,用数组
设
代码描述
#include<cstdio>
#define max(a,b) (a>b?a:b)
int n,x,a[1000005];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
a[x]++;//用数组a做桶来记录每个数
}
for(int i=0;i<=1000000;i++)
{
n-=a[i];//n为i的前n大的数,ai为大小为i的数的数量
if(i>=n)//如果i为至少第i大的数
{
printf("%d",i);//输出结果,结束程序
return 0;
}
}
return 0;
}