RE#14 15 19 21 24, 其余AC, 请大佬帮忙看看
查看原帖
RE#14 15 19 21 24, 其余AC, 请大佬帮忙看看
1128098
SunShengxuan楼主2024/7/28 00:09
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
double N[7000000], var[30000000];
double variance(long long x, long long n, double ans) {
	double average = ans / n * x, s2 = 0;
	for(int i = 0; i < n; ++ i) {
		s2 = s2 + pow(N[i] * x - average, 2);
	}
	return s2 / n;
}
int main() {
	long long n, k;
	double ans = 0;
	scanf("%lld %lld", &n, &k);
	for(int i = 0; i < n; ++ i) {
		scanf("%lf", &N[i]);
		ans += N[i];
	}
	var[1] = variance(1, n, ans);
	if(var[1] == 0) {
		printf("No answer!\n");
		return 0;
	}
	long long l = 1, minv = 3 * pow(10, 18), mi = 0;
	while(var[l - 1] <= k) {
		l ++;
		var[l] = var[1] * pow(l, 2);
	}
	for(int i = 1; i <= l; ++ i) {
		if(abs(var[i] - k) < minv) {
			minv = abs(var[i] - k);
			mi = i;
		}
	}
	printf("%lld\n", mi);
	return 0;
}
2024/7/28 00:09
加载中...