本文主要是介绍nyoj 678 最小k个数之和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
当观察到数据量很庞大 而数的范围较小时候 就想到了数组下标排序了。。
#include <stdio.h>
#include <string.h>
int main()
{int a[2005],n,k,x;while(scanf("%d %d",&n,&k)!=EOF){memset(a,0,sizeof(a));for(int i=0;i<n;i++){scanf("%d",&x);a[x]++;}int sum=0;for(int i=1;i<2001;i++){if(a[i]){while(a[i]){sum+=i;a[i]--;k--;if(k==0)goto stop;}}}stop:printf("%d\n",sum);}return 0;
}
这篇关于nyoj 678 最小k个数之和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!