Robert 的军队
来源:互联网 发布:不上班的23种活法 知乎 编辑:程序博客网 时间:2024/05/16 15:27
题目
(ps:同学出的题诶………)
样例输入:
5 3 4
3 2 4 1 4
样例输出:
0.222
数据范围:
思路:这种题靠思维,注意方差的定义中,蕴含的一些特殊条件。
解法:
暴力,期望得分10~30分。
其中可以推出求方差S的公式:
平均数
方差S=
S=(
=(
所以只需要计算出a[i]与
优化一:可以具方差的定义知道,选的数里每对数的差越小,则方差越小。所以我们直接从小到大排个序,再取连续的一段。这样时间复杂度
优化二:其实可以证出,方差不可能随着选的数的增加而减小,所以我们只需要考虑长度为L的方差便可以了。时间复杂度
代码:
#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)#define ll long longusing namespace std;const int maxn=100005;double s[maxn],s2[maxn],ans;ll h[maxn],n,l,r;int main(){ freopen("army.in","r",stdin); freopen("army.out","w",stdout); scanf("%d%d%d",&n,&l,&r); fo(i,1,n) scanf("%lld",&h[i]); sort(h+1,h+n+1); fo(i,1,n){ s[i]=s[i-1]+h[i]; double x=h[i]*h[i]; s2[i]=s2[i-1]+x; } ans=10000000000; fo(i,l,n){ double x=(s[i]-s[i-l])/l; double k1=(s2[i]-s2[i-l])/l; double k=k1-x*x; if (k<ans) ans=k; } printf("%.3lf",ans); fclose(stdin); fclose(stdout);}
0 0
- Robert 的军队
- 【JZOJ4585】Robert 的军队
- Robert 的军队
- 【jzoj4585】【Robert 的军队】
- Robert 的军队
- Robert 的军队
- Robert 的军队 题解+代码
- 【JZOJ 4585】Robert 的军队
- 【JZOJ 4585】Robert 的军队
- [jzoj4585]【NOIP2016模拟7.7】Robert 的军队
- 军队的级别与军队编制
- 越南军队的战斗力
- 这样的军队谁能敌?
- 最可怕的军队
- X国的军队
- Robert算子的运用
- 不同时代军队的战争
- 军队问题--线性链表的操作
- windows批处理自动修改postgres数据库密码
- win7下 修改git bash的默认开始路径
- android之Button2
- linux下vi命令大全
- 关于Integer的parseInt(String s, int radix)方法的使用
- Robert 的军队
- 如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
- 01背包类型问题的两种解法
- SQL语句
- 《庄子》的逍遥
- eclipse安装maven
- Linux开发工具之调试器gdb
- mysql主主复制+Keepalived 打造高可用mysql集群
- 开发-开发中遇到三目运算符的问题