1098 最小方差
基準時間限制:1 秒 空間限制:131072 kb 分值: 20
難度:3級演算法題
若x1,x2,x3......xn的平均數為k。
則方差s^2 = 1/n * [(x1-k)^2+(x2-k)^2+.......+(xn-k)^2] 。
方差即偏離平方的均值,稱為標準差或均方差,方差描述波動程度。
給出m個數,從中找出n個數,使這n個數方差最小。
input
第1行:2個數m,n,(m > n, m <= 10000)output第2 - m + 1行:m個數的具體值(0 <= xi <= 10000)
輸出最小方差 * n的整數部分。input示例
5 312345output示例
2思路:一.暴力,排序後直接求每乙個n區間的方差
二.化簡
n*d=(x1-k)^2+(x2-k)^2+...+(xn-k)^2
=(x1^2+x2^2+...+xn^2)-2*k*(x1+x2+...+xn)+n*k^2
又 k=(x1+x2+...+xn)/n 代入得
n*d=(x1^2+x2^2+...+xn^2)-(x1+x2+...+xn)^2/n
code 1:
//暴力~~~
#include#includeusing namespace std;
typedef long long ll;
const int max_n=10005;
int n,m;
ll a[max_n],s2[max_n];
int main()
long double min=1e18;
for(int i=m;i<=n;++i)
min=min(min,s2[i]-s2[i-m]-(long double)(sum[i]-sum[i-m])*(sum[i]-sum[i-m])/m);
cout<
51nod1098 最小方差 公式暴力
1098 最小方差 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 若x1,x2,x3.xn的平均數為k。則方差s 2 1 n x1 k 2 x2 k 2 xn k 2 方差即偏離平方的均值,稱為標準差或均方差,方差描述波動程度。給出m個數,從中找出n個數,使這n...
51Nod 1098 最小方差 數學
題目 若x1,x2,x3.xn的平均數為k。則方差s 2 1 n x1 k 2 x2 k 2 xn k 2 方差即偏離平方的均值,稱為標準差或均方差,方差描述波動程度。給出m個數,從中找出n個數,使這n個數方差最小。輸入 第1行 2個數m,n,m n,m 10000 第2 m 1行 m個數的具體值 ...
51nod 最小方差 1098
若x1,x2,x3 xn的平均數為k。則方差s 2 1 n x1 k 2 x2 k 2 xn k 2 方差即偏離平方的均值,稱為標準差或均方差,方差描述波動程度。給出m個數,從中找出n個數,使這n個數方差最小。input 第1行 2個數m,n,m n,m 10000 第2 m 1行 m個數的具體值 ...