洛谷调了调过了……bzoj调了一晚上快把评测卡了还是没过……

不过还是感觉这个算法肥肠神奇,是一个可以带给人们欢乐的算法。

算法思想极为简单,先随便得出一个不优解,然后每次在这个不优解的周围随机跳动,随机跳动幅度随时间推移减小,如果到了更优的解则更新;如果解不是更优的则有T的概率更新,T随时间推移减小。

算法主要难点在于参数的设置,包括初始幅度,幅度减小的速率,还有T。这玩意过于玄学我缺乏人生经验希望有大佬指点一二。

睿智的模板

#include<bits/stdc++.h>
using namespace std;
struct thing
{double x,y,w;
}a[1001];
int n;
double ansx,ansy,t,ans;
#define T 0.998
double calc(double x,double y)
{double res=0;for(int i=1;i<=n;i++){res+=sqrt((a[i].x-x)*(a[i].x-x)+(a[i].y-y)*(a[i].y-y))*a[i].w;}return res;
}
void fire()
{double xx=ansx,yy=ansy;t=1270;for(;t>=1e-14;t*=T){double x=xx-(rand()*2-RAND_MAX)*t,y=yy-(rand()*2-RAND_MAX)*t;double tmp=calc(x,y),d=tmp-ans;if(d<0){ans=tmp;ansx=x,ansy=y,xx=x,yy=y;}else if( exp(-d/t)*RAND_MAX>rand())xx=x,yy=y;}
}
int main()
{srand(20011115);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lf%lf%lf",&a[i].x,&a[i].y,&a[i].w);ansx+=a[i].x,ansy+=a[i].y;}ansx/=(double)n,ansy/=(double)n;ans=calc(ansx,ansy);for(int i=1;i<=8;i++)fire();printf("%.3lf %.3lf",ansx,ansy);
}

View Code

转载于:https://www.cnblogs.com/mordor/p/9776250.html

人参中第一次膜你退货相关推荐

  1. mysql 查找字符位置_MySQL数据库中如何查看一个字符串在另一个字符串中第一次出现的位置呢?...

    摘要: 下文讲述MySQL数据库中查看一个字符串第一次出现的位置的方法分享,如下所示: 实现思路: 方式1: 使用系统函数LOCATE(substr,str)即可获取 substr字符串在str中第一 ...

  2. 字符串2在字符串1中第一次出现的位置strstr()

    //字符串2在字符串1中第一次出现的位置,采用遍历的思想,移动str1的位置与str2进行匹配 char *strstr(const char *str1, const char *str2) {in ...

  3. 关于--在 System.Threading.ThreadAbortException 中第一次偶然出现的“mscorlib.dll”类型的异常(转)...

    一直以来都在调试结束的时候看到这个错误信息,但并不影响正常运行,于是找了找原因: 开发环境为VS2005,OS 为Windows 2003,系统登录后在跳转到另一页面时会报此错误: 在 System. ...

  4. 删除替换字符串中第一次出现的字符串

    在String类中有一个replaceFirst方法,可以替换掉字符创中第一次出现的某个字符 String string = "abc123bcsabc251233154"; St ...

  5. python,给定任意列表lst和一个任意值item,返回item在lst中第一次出现的位置

    python,给定任意列表lst和一个任意值item,返回item在lst中第一次出现的位置,如果lst中不存在元素item则返回字符串'不存在' 注意时返回字符串 运用list的index,即使有多 ...

  6. PCB表面处理OSP工艺中影响膜厚的因素分析

    2019独角兽企业重金招聘Python工程师标准>>> pcb打样中表现处理也是很重要的一个环节,今天就给大家介绍一下PCB表面处理OSP工艺中影响膜厚的因素分析 影响OSP膜厚的主 ...

  7. 如何求指定数字在数组中第一次出现的位置

    问题描述: 给定数组 a = { 3,4,5,6,5,6,7,8,9,8}, 这个数组相邻元素之差都为1, 给定数字9, 它在数组中第一次出现的位置下标为8 实现思路: 方法一:"蛮力&qu ...

  8. 【ASP.NET】System.Threading.ThreadAbortException中第一次偶然出现的“mscorlib.dll”类型的异常

    如果你的ASP.NET在调试过程中,发现出现页面在跳转到另一页面,出现System.Threading.ThreadAbortException中第一次偶然出现的"mscorlib.dll& ...

  9. 实现输入10个数,输出这10个数的和,平均值;输出该组数中数与数的最大差值;再输入一个数,然后确定它在这个数组中第一次出现的位置,如果没有该数则输出-1,否则输出其下标

    实现输入10个数,输出这10个数的和,平均值:输出该组数中数与数的最大差值:再输入一个数,然后确定它在这个数组中第一次出现的位置,如果没有该数则输出-1,否则输出其下标 int main() //程序 ...

最新文章

  1. 前锋 php 杭州,前锋php培训
  2. 中国工程院院士,受聘一流大学院长
  3. 关于计算机人工智能的知识,《计算机科学导论》人工智能基础知识
  4. python的去重函数_python去重函数是什么
  5. JMeter测试实例
  6. 发那科机器人override指令_上海发那科(FANUC)机器人有限公司内部教材 -
  7. python最近广告_腾讯2018广告算法大赛思路解析(python)
  8. C. Mortal Kombat Tower(DP)
  9. JS 实现小游戏 打砖块
  10. [复变函数]第24堂课 6.3 辐角原理
  11. 计算机辅助数控编程交互图形,第8章-计算机辅助数控编程.ppt
  12. ACL 2020 MART: Memory-Augmented Recurrent Transformer for Coherent Video Paragraph Captioning
  13. Java并发包concurrent——ConcurrentHashMap
  14. Linux在加载模块时报insmod: error inserting xxx.ko -1 File exists这个错
  15. 华为hcie中QOS 流量整形 双速率的概念-ielab实验室
  16. 豆瓣《隐秘的角落》评论爬取
  17. 易语言和python融合_易语言和python融合|智联招聘怎么自动投递简历
  18. Vue项目安装webpack遇到的问题
  19. 推荐几款很棒的文本编辑器
  20. 法国大数据分析服务初创公司 Dataiku 获1400 万美元 A 轮融资

热门文章

  1. 计算机默认存储格式,office2007默认保存文件格式的修改方法
  2. java web 显示项目下的图片_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...
  3. 【机器学习】树回归和聚类算法解析和应用
  4. Android移动开发之【通往安卓的神奇之旅】基于回调的事件处理
  5. 【Network Security!】密码攻击的原理和方法
  6. 在Python中实现SVM分类
  7. ubunto安装mysql8.13_ubuntu安装mysql[ubuntu部署]
  8. lay和lied_lie和lay的区别和用法是什么
  9. java inputstream 回退_系统学习 Java IO (十)----回退流 PushbackInputStream
  10. 网站快照更新不及时要怎样解决?