首页 > [HAOI2006]均分数据
头像 shyyhs
发表于 2021-01-24 21:44:50
随机的次数多了,代码轻松跑过. #include <bits/stdc++.h> using namespace std; int main() { int n,m,a[23],x[23];cin>>n>>m;double tot=0; for(i 展开全文
头像 sunrise__sunrise
发表于 2021-01-25 15:52:32
题目描述 给你长度为的序列,需要你分成组,组内元素相加形成新的长度为的数组,询问数组最小的方差是多少。方差公式:。 。 Solution 学到的新知识点,正经叫法好像是模拟退火,学到了还可以用随机数去解题。这个题目给出很小,我们可以模拟很多很多遍,虽然模拟全部最坏可以到每个数在每个位置都尝试一遍,, 展开全文
头像 (́安◞౪◟排‵)
发表于 2021-01-21 21:33:07
此题我使用的是模拟退火算法模拟退火虽然是算法,但是大多数时候都用来骗分了模拟退火解决的一般是最优解问题,如果遇到不会做的最优解的问题就用模拟退火骗骗分吧!!!你看,这可是省选题哦,可以骗分的哦 下面我们来介绍一下模拟退火吧模拟退火简介好了,我们介绍完了(我觉得上面那篇文章还挺好的) 实现 在我讲实 展开全文
头像 hnust_yangyanjun
发表于 2021-01-26 16:53:32
题意:将n个数分成m组,求最小均方差? 思路:随机打乱数组,然后贪心求结果,取最小值。(double)clock()/CLOCKS_PER_SEC得出程序运行的时间,单位为S。random_shuffle(a+1,a+n+1);打乱数组。贪心策略:前m个数每个数单独为一组,然后将剩余数分给当前最小数 展开全文
头像 熠丶
发表于 2021-01-25 04:27:24
做法:随机+贪心 思路: 是个定值,可以先用tmp存下来 只需求即可 我们可以用random_shuffle()用来对原数据进行重新排序,然后利用贪心的思想(每次把数加在最小的组里),即可满足均方差最小。 用while ((double)clock()/CLOCKS_PER_SEC< 展开全文