Variance
来源:互联网 发布:linux shell脚本减法 编辑:程序博客网 时间:2024/06/05 08:18
实验任务
有一份成绩名单,每位学生有三门课程的分数,在正常情况下会按照总分从高到低排名。不过,我们想了解谁在各个课程中更加地稳定。请按照方差从低到高进行排序。若稳定度相同,在名单靠前的学生排前。
数据输入
第一行 N,代表有几位学生。(N <= 10000)
接下来 N 行,每行为该同学的姓名和三门成绩分数。(0<=成绩<=100的整数)
(学生姓名长度不超过 10)
数据输出
输出有序的名单,每行为该学生的姓名。
输入示例
3
A 100 100 100
B 60 90 91
C 75 77 76
输出示例
A
C
B
解题思路
可能一开始会定义个double按照定义来算方差,但是会发现浮点数难免有精度上的误差,因此我们可以适当扩大一定比例,保证结果为整型。
参考代码
#include <iostream> #include <cstdio> #include <algorithm> #include <string> #define sqr(x) ((x)*(x)) const int maxn = 10010; using namespace std; struct STU{ int g1,g2,g3,p; string name; int var; }stu[maxn]; bool cmp(const STU& s1,const STU& s2){ return ((s1.var < s2.var) || (s1.var == s2.var && s1.p < s2.p)); } int main() { int n,i; while (cin >> n){ int aver; for (i = 0;i < n;i++){ cin >> stu[i].name >> stu[i].g1 >> stu[i].g2 >> stu[i].g3; stu[i].p = i; aver = (stu[i].g1 + stu[i].g2 + stu[i].g3); stu[i].var = (sqr(3*stu[i].g1-aver) + sqr(3*stu[i].g2-aver) + sqr(3*stu[i].g3-aver)); //等比例扩大 } sort(stu,stu+n,cmp); for (i = 0;i < n;i++) cout << stu[i].name << endl; } return 0; }
0 0
- Variance
- Variance
- Variance
- eigrp variance
- Co-variance
- 变性 Variance
- Sample Variance
- Rolling Variance
- bias & variance
- Layers Variance Shadow Map
- Layered-->Variance-->Shadow Map
- Layered-->Variance-->Shadow Map
- Bias-Variance Tradeoff
- Variance Shadow Mapping(译)
- Bias vs. variance
- Covariance and Contra-variance
- bias和variance
- Variance Shadow Maps
- 内部类和嵌套类
- 安卓调用系统的图库选择图片并获取Uri路径
- linux基础知识之:Shell编程
- 【SICP练习】125 练习3.56
- C++中构造函数、析构函数以及类成员初始化顺序详解
- Variance
- mybatis:"configuration" must match "(properties?,settings?,typeAliase.....
- 腾讯笔试题精选一
- chmod
- UVa1644 - Prime Gap
- (产品技术)Axure7.0圆角矩形
- android一个BaseAdapter的使用(LayoutInflater加载自定义布局)
- xcode6.2 新建分类方法
- DNA Sorting