博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
鞍山邀请赛 部分题
阅读量:4286 次
发布时间:2019-05-27

本文共 1041 字,大约阅读时间需要 3 分钟。

    

题意:给你n个行星,移动k个行星,绕他们的质心速度变得更大,使得这些行星的速度变得更大,那么就要使得

I的值更小即可,

#include
#include
#include
#include
using namespace std;double zb[70100];double sum[70005];double s[70005];int main(){ int t,n,m; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); for(int i = 1;i <= n;i++) scanf("%lf",&s[i]); if(m >= n - 1) {printf("0\n");continue;} sort(s+1,s+n+1); zb[0] = 0;sum[0] = 0; for(int i = 1;i <= n;i++){ zb[i] = zb[i-1] + s[i];//预处理前n项和; sum[i] = sum[i-1] + s[i]*s[i];//预处理前n项平方和; } double zx1 = zb[n]/(n-m); double _min = sum[n] + (n-m) * zx1 * zx1 - 2 * zx1 * zb[n];//注意不移动的时候他的I值 for(int i = n-m;i <= n ;i++)//苦逼的边界无限的WA { double tmp = zb[i] - zb[i-n+m]; double r = tmp/(n-m); double k = sum[i] - sum[i-n+m]; double ret = k + (n-m) * r * r - 2 * r * tmp; _min = min(ret,_min); } printf("%.10lf\n",_min); } return 0;}

转载地址:http://ucsgi.baihongyu.com/

你可能感兴趣的文章
多目标进化算法(MOEAs)概述
查看>>
AdaBoost与随机森林区别
查看>>
坐标下降法(Coordinate descent)
查看>>
Matlab plot画图 坐标字体、字号、范围、间隔等的设置
查看>>
LATEX调整公式、图片与正文间距离,文字间距离,调整空白大小
查看>>
eps格式图像空白边缘裁剪
查看>>
稀疏问题的学习
查看>>
机器学习(6) MovieLens数据集
查看>>
matlab读取UCI中获取的.data文件
查看>>
matlab错误:Subscript indices must either be real positive integers or logicals.
查看>>
行列式及其性质
查看>>
matlab 保留固定长度的整数位
查看>>
xshell-常用命令
查看>>
用xshell运行matlab 远程给Linux服务器安装Matlab R2014b
查看>>
在本地电脑使用远程服务器的图形界面——包括 MATLAB、PyCharm 等各种软件
查看>>
向量转置怎么求导(多元线性回归原理推导用)
查看>>
Matlab中布尔值/逻辑值与数值型类型的相互转换
查看>>
Matlab 并行代码
查看>>
matlab中的并行方法与理解(2):parfor中的变量类型
查看>>
CentOS 7 命令行模式安装teamviewer13
查看>>