HDU 5073 Galaxy ——乱搞
2024-08-30 11:14:36
【题目分析】
练习赛的T1。
只要看懂样例就可以猜结论了。
然后大胆猜测剩下的星星是一段,其余的都移到重心上去。
所以只要把计算的式子变形一下就很好维护了。
居然没有1A
【代码】
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std; #define F(i,j,k) for (int i=j;i<=k;++i)
#define D(i,j,k) for (int i=j;i>=k;--i)
#define ll long long
#define maxn 50005 int t,n,k;
ll a[maxn],sum[maxn],sumfac[maxn]; int main()
{
scanf("%d",&t);
while (t--)
{
scanf("%d%d",&n,&k);
F(i,1,n) scanf("%lld",&a[i]);
if (k>=n-1){printf("0\n");continue;}
sort(a+1,a+n+1);
sum[0]=sumfac[0]=0;
F(i,1,n) sum[i]=sum[i-1]+a[i];
F(i,1,n) sumfac[i]=sumfac[i-1]+a[i]*a[i];
double ans=1e18;
k=n-k;
F(i,1,n-k+1)
{ans=min(ans,(double)sumfac[i+k-1]-sumfac[i-1]+(double)(sum[i+k-1]-sum[i-1])*(sum[i+k-1]-sum[i-1])/k-(double)2*(sum[i+k-1]-sum[i-1])*(sum[i+k-1]-sum[i-1])/k);}
printf("%f\n",ans);
}
}
最新文章
- strust2中使用session
- Oracle(创建序列)
- Linux课程实践三:简单程序破解
- GitHub使用指南
- winndows7、office2013 激活信息还原
- IOS真机测试(用证书进行真机测试)
- order by 指定顺序 mysql
- 【转】maven命令背后是如何工作的
- Codeforces 743D:Chloe and pleasant prizes(树形DP)
- 学习smali
- LRU Cache的实现
- 网页视频下载牛逼工具,支持各种格式转换,比如腾讯视频格式qlv转mp4
- Redis分布式队列和缓存更新
- python pickle模块的使用/将python数据对象序列化保存到文件中
- MySQL 分组之后如何统计记录条数 gourp by 之后的 count()
- 【微服务系列】Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
- mysql数据库的相关练习题及答案
- can/socket can
- [转]Hspice 语法手册
- ntp服务的细节全解析