题目传送门

这道题可以用C++的random_shuffle屮过去。

random数列插入顺序,每次都插入数值和最小的那一组。

#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int N,M,a[];
double ave,ans=2e9,t[]; double get()
{
double tot=;
memset(t,,sizeof t);
for(int i=;i<=N;i++){
int d,mx=2e9;
for(int j=;j<=M;j++)if(t[j]<mx)mx=t[j],d=j;
t[d]+=a[i];
}
for(int i=;i<=M;i++)
tot+=(ave-t[i])*(ave-t[i]);
return tot;
} int main()
{
srand();
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++)scanf("%d",&a[i]),ave+=a[i];ave/=M;
for(int i=;i<=;i++){
random_shuffle(a+,a+N+);
ans=min(ans,get());
}
printf("%.2lf",sqrt(ans/M));
return ;
}

random_shuffle

这道题也可以用模拟退火。

设定一个初始温度,然后降温,降温的同时如果大于某个你设定的温度,即当前状态不稳定,进行贪心。

反之为稳定可以随机一个放到随机一个组里。

code:

#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std; int N,M,w[],S=;
double ans,res=2e9,t[],ave,a[]; void work(int x,int y)
{
t[w[x]]-=a[x];
t[y]+=a[x];
w[x]=y;
} double get()
{
double tot=;
for(int i=;i<=M;i++)
tot+=(ave-t[i])*(ave-t[i]);
return tot;
} int main()
{
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++)
scanf("%lf",&a[i]),ave+=a[i];
ave/=M;
srand();
while(S--){
memset(t,,sizeof t);
memset(w,,sizeof w);
for(int i=;i<=N;i++)
t[w[i]=rand()%M+]+=a[i];
ans=get();
for(double Tempr=;Tempr>;Tempr*=0.812){
int x=rand()%N+,y=,bef;
if(Tempr<)y=rand()%M+;
else for(int i=;i<=M;i++)if(t[y]>t[i])y=i;
bef=w[x];
work(x,y);
double now=get();
if(now<ans||Tempr>rand()%)ans=now;
else work(x,bef);
}
res=min(res,ans);
}
printf("%.2lf",sqrt(res/M));
return ;
}

BZOJ2428_均分数据_KEY的更多相关文章

  1. bzoj2428: [HAOI2006]均分数据

    模拟退火.挺好理解的.然后res打成了ans一直WA一直WA...!!!一定要注意嗷嗷嗷一定要注意嗷嗷嗷一定要注意嗷嗷嗷. 然后我就一直卡一直卡...发现最少1800次的时候就可以出解了.然后我就去调 ...

  2. 【BZOJ2428】均分数据(模拟退火)

    [BZOJ2428]均分数据(模拟退火) 题面 BZOJ 题解 先说说黄学长的做法: 当温度比较高的时候,贪心 每次随机一个数,把他放进当前和最少的那一组里面 温度足够低的时候就完全随机然后转移 这样 ...

  3. BZOJ2428 均分数据

    2428: [HAOI2006]均分数据 Time Limit: 5 Sec  Memory Limit: 128 MB Description 已知N个正整数:A1.A2.…….An .今要将它们分 ...

  4. P2503 [HAOI2006]均分数据

    P2503 [HAOI2006]均分数据 模拟退火+dp (不得不说,我今天欧气爆棚) 随机出1个数列,然后跑一遍dp统计 #include<iostream> #include<c ...

  5. bzoj 2428: [HAOI2006]均分数据 随机化

    2428: [HAOI2006]均分数据 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  6. bzoj2428 [HAOI2006]均分数据 模拟退火

    [HAOI2006]均分数据 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 3434  Solved: 1091[Submit][Status][Dis ...

  7. 洛谷 P2503 [HAOI2006]均分数据 随机化贪心

    洛谷P2503 [HAOI2006]均分数据(随机化贪心) 现在来看这个题就是水题,但模拟赛时想了1个小时贪心,推了一堆结论,最后发现贪心做 不了, 又想了半个小时dp 发现dp好像也做不了,在随机化 ...

  8. 【BZOJ2428】[HAOI2006]均分数据

    Description 已知N个正整数:A1.A2.…….An .今要将它们分成M组,使得各组数据的数值和最平均,即各组的均方差最小.均方差公式如下: ,其中σ为均方差,是各组数据和的平均值,xi为第 ...

  9. mycat使用之MySQL单库分表及均分数据

    转载自 https://blog.csdn.net/smilefyx/article/details/72810531 1.首先在Mycat官网下载安装包,这里就以最新的1.6版本为例,下载地址为:  ...

随机推荐

  1. django中的权限控制(form增删改)

    Django默认提供了权限控制,但只能对使用了其自带的登录认证的用户进行权限控制,说白了就是只能对存储在auth_user表中的用户进行权限控制,但不能对未登录过的用户进行权限控制.但如果通过集成LD ...

  2. AC自动机, 字符串匹配算法

    package utils import java.util.HashMapimport java.util.LinkedListimport util.control.Breaks._import ...

  3. 《编程题》穷举法求N年后有多少头牛

    若一头小母牛,从出生起第四个年头开始每年生一头母牛,按这个规律,第N年时有多少头母牛? #include <iostream> int main(int argc, const char ...

  4. PHP防SQL注入和XSS攻击

    摘要: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL ...

  5. ELK搭建实时日志分析平台之二Logstash和Kibana搭建

    本文书接前回<ELK搭建实时日志分析平台之一ElasticSearch> 文:铁乐与猫 四.安装Logstash logstash是一个数据分析软件,主要目的是分析log日志. 1)下载和 ...

  6. 全部读取------------ 一次性全部读取的.read() VS 一行一行的for迭代

    全部读取 f = open("喜洋洋",mode= "r",encoding= "utf-8") 方法一:     一次性全部读取f = o ...

  7. VMware常见错误故障排查

    1. VMware安装失败 “Failed to create the requested registry key Key:installer Error:1021" 1.1. windo ...

  8. Burpsuite-Intruder-xssValidator(XSS检测)基础学习

    这次总结的是使用Burp+PhantomJS进行xss测试. 首先,当然是xss测试的环境配置了. 1. PhantomJS安装及Path配置:自己找资料吧. phantomjs -v验证是否成功安装 ...

  9. Java 中 Emoji 的正则表达式

    一.emoji 的范围 查阅维基百科中 emoji 的说明 1. 杂项符号及图形 杂项符号及图形一共有768个字符,范围为: U+1F300 - U+1F5FF,在 Java 中正则表达式为: &qu ...

  10. Python2图像文本识别

    原文地址:http://www.cnblogs.com/tanghuang/p/6380588.html 适用版本:python2以下 将图片中的数字通过 pytesseract.image_to_s ...