题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4981
解析:
序列求median number即a[(n+1)/2],不过要注意先排序啊!
这里注意求平均数的时候,在C中需要ave = (1.0*sum)/n;
由于我们这里数字比较小,所以可以将n乘到不等式的另一边,即比较median*n与sum就可以了。
代码:
/*
ID:muller8
Name: 4981 Goffi and Median
Reference: 水题
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#define MAXN 10005
#define INF 1e9
int a[MAXN];
int main(){
int n;
while(~scanf("%d", &n)){
int sum = 0;
for(int i=1; i<=n; ++i){
scanf("%d", &a[i]);
sum+=a[i];
}
sort(a+1, a+1+n);
if(a[(n+1)/2]*n>sum) printf("YES\n");
else printf("NO\n");
}
return 0;
}
本文详细解析了HDU平台上的序列求中位数问题,包括排序技巧、求平均数的方法以及如何通过比较中位数与总和来判断是否满足条件。通过实例代码演示了解决方案。
924

被折叠的 条评论
为什么被折叠?



