武大校赛资格赛 求方差
来源:互联网 发布:集搜客网络爬虫 下载 编辑:程序博客网 时间:2024/06/09 16:36
Problem 1570 - G - April disease
Time Limit: 1000MS Memory Limit: 65536KB
Total Submit: 210 Accepted: 105 Special Judge: No
Total Submit: 210 Accepted: 105 Special Judge: No
Description
Holding a contest is an interesting mission, and apparently arranging the problems is not exceptional, either.
You may consider that there are N problems prepared, and it's required to choose M problems to form the problem set of the upcoming contest.
What's more, the evaluating function of all the problems choosed is as follows:
Where Xi represents the hardness of the i_th problem and X represents the average of the M problems.
However, the contest principal Alice has lost himself in April disease, and just wants to hold the worst contest ever.(Sounds horrible...)
Now he wonders, what's the minimum value of s^2 can be.
Input
The first line of each test case contains two numbers N and M. ( 1 <= M <= N <= 30 )
The following line will contain N numbers Xi. ( 1 <= Xi <= 10^9 )
The following line will contain N numbers Xi. ( 1 <= Xi <= 10^9 )
Output
For each test case, output your answer in one line.
(Please keep three decimal places.)
(Please keep three decimal places.)
Sample Input
4 3
6 10 1 2
5 2
1 8 3 4 9
6 10 1 2
5 2
1 8 3 4 9
Sample Output
4.667
0.250
0.250
#include<algorithm>#include<iostream>#include<limits.h>#include<stdlib.h>#include<string.h>#include<cstring>#include<iomanip>#include<stdio.h>#include<bitset>#include<cctype>#include<math.h>#include<string>#include<time.h>#include<vector>#include<cmath>#include<queue>#include<stack>#include<list>#include<map>#include<set>#define LL long longusing namespace std;const LL mod = 1e9 + 7;const double PI = acos(-1.0);const int M = 105;double a[M];double calc(int l, int r){ double sum = 0; for(int i = l; i <= r; ++i) sum += a[i]; int len = r - l + 1; double x = (double)(sum / len); double ans = 0; for(int i = l; i <= r; ++i){ ans += (a[i] - x) * (a[i] - x); } ans /= len; return ans;}int main(){ int m, n; while( cin >> n >> m ){ for(int i = 0; i < n; ++i) cin >> a[i]; sort(a,a + n); double ans = 999999999; for(int i = 0; i <= n - m; ++i){ ans = min(ans,calc(i,i + m - 1)); } printf("%.3f\n",ans); } return 0;}
0 0
- 武大校赛资格赛 求方差
- 武大校赛资格赛 差值维护
- 武大校赛资格赛 最小矩阵覆盖
- 2015武大校赛
- 武大校赛感想
- 武大校赛E题
- 求方差
- 武大校赛网络赛B题
- 武大校赛网络赛总结
- 武大校赛PE补题(有一个邻接矩阵求m步从i到j的方法数)
- 川大校赛总结
- 郑大校赛总结
- 河工大校赛终结
- 河工大校赛总结
- 河工大校赛
- 2017 上大校赛
- 求数组的方差
- Matlab求方差,均值
- 第七章 C++/C指针.数组和字符串
- ios系统经纬度转百度经纬度及经纬度转地址
- PHP获取指定目录下的所有文件,递归到子文件夹
- 第六届蓝桥杯JAVAB组初赛第三题
- OC与cocoa ,cocoa touch
- 武大校赛资格赛 求方差
- Linux文件操作
- UIKit框架-基础控件Swift版本: 7.UISwitch方法/属性详解
- Animation用法_animation动画效果
- 第六周项目五 友元类
- 随机数练习2,和电脑玩石头剪刀布
- Android中dp、px转换案例分析
- 融合经典与创新 天梭2014超赞新品推荐
- CDMA2000系统中的鉴权分析