这里来一发需要开毒瘤优化,并且几率很小一遍过的模拟退火题解...

友情提醒:如果你很久很久没有过某一个点,您可以加上特判

可以像 P1337 [JSOI2004]平衡点 / 吊打XXX 那道题目一样

如果不会退火可以拿那道题练手...

个人看来这题和那题差不多,主要区别在get_ans()的函数上面

如何get_ans呢?
(图很垃圾,别介意)
先看这张图:

假设中间的黑点是目前确定的圆心,要get的ans是离这个点最远的圆上的点

那么初中数学老师就会教你:距离=两个圆心的距离+选中圆的半径

像这样:

显然最远的点只要O(n)遍历取最大值就好了

然后套上退火的模板就好了吧

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("inline")
#pragma GCC optimize("Ofast")
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdlib>
#include<ctime>
using namespace std;
inline int read(){int ans=0,f=1; char chr=getchar();while(!isdigit(chr)){if(chr=='-') f=-1;chr=getchar();}while(isdigit(chr)) {ans=(ans<<3)+(ans<<1)+chr-48;chr=getchar();}return ans*f;
}
int n;
double x[50005],y[50005],z[50005],ansx,ansy,BR;
double dis(double x,double y,double a,double b){return sqrt((x-a)*(x-a)+(y-b)*(y-b));}
double get(double q,double p){double ans=0;for(register int i=1;i<=n;++i)ans=max(dis(x[i],y[i],q,p)+z[i],ans) ;return ans;
}
const double delta=0.999;
double ans=1e20,maxn=-54564564;
int lim;
void Fire(){register double fx=ansx,fy=ansy;register double t=12180.0;while(t>1e-14){register double tx=fx+(rand()*2-RAND_MAX)*t;register double ty=fy+(rand()*2-RAND_MAX)*t;register double tans=get(tx,ty);register double DE=tans-ans;if(DE<0){fx=tx;fy=ty;ansx=tx;ansy=ty;ans=tans;}else if(exp(-DE/t)*RAND_MAX>rand())fx=tx,fy=ty;t*=delta;if(clock()-BR>=lim){printf("%.7lf %.7lf %.7lf",ansx,ansy,ans);exit(0);}}
}
int main(){BR=clock();srand(unsigned(time(0)));n=read();for(register int i=1;i<=n;++i)  scanf("%lf%lf%lf",&x[i],&y[i],&z[i]),ansx+=x[i],ansy+=y[i],maxn=max(maxn,z[i]);ansx/=1.0*n;ansy/=1.0*n;lim=(n<=1000||maxn==0)?995:3995;lim*=1000;while(1) Fire();return 0;
}

转载于:https://www.cnblogs.com/zhenglw/p/10507209.html

[LnOI2019]长脖子鹿省选模拟赛 东京夏日相会相关推荐

  1. 洛谷[LnOI2019]长脖子鹿省选模拟赛 简要题解

    传送门 听说比赛的时候T4T4T4标程锅了??? WTF换我时间我要写T3啊 于是在T4T4T4调半天无果的情况下260pts260pts260pts收场真的是tcltcltcl. T1 快速多项式变 ...

  2. [luogu#2019/03/10模拟赛][LnOI2019]长脖子鹿省选模拟赛赛后总结

    t1-快速多项式变换(FPT) 题解 看到这个\(f(x)=a_0+a_1x+a_2x^2+a_3x^3+ \cdots + a_nx^n\)式子,我们会想到我们学习进制转换中学到的,那么我们就只需要 ...

  3. 长脖子鹿省选模拟赛 [LnOI2019SP]快速多项式变换(FPT)

    本片题解设计两种解法 果然是签到题... 因为返回值问题T了好久... 第一眼:搜索大水题? 然后...竟然A了 1 #include<cstdio> 2 #include<queu ...

  4. 省选模拟赛记录(越往下越新哦~~~)

    LOG 模拟赛 第一次见尼玛这么给数据范围的-- 开考有点困,迷迷糊糊看完了三道题,真的是像老吕说的那样,一道都不会-- 思考T1,感觉有点感觉,但是太困了,就先码了暴力,发现打表可以50分,于是就大 ...

  5. 省选模拟赛2022/3/23

    省选模拟赛2022/3/23 比赛时间安排 赛后总结反思 与正解的差距 T1 T2 T3 比赛时间安排 7.30-7.40 t1 n<=10,全排列一下跳叶子结点的顺序暴力搞 t2 题意感觉好复 ...

  6. 省选模拟赛2022/3/31

    省选模拟赛2022/3/31 比赛时间安排 赛后反思总结 与正解的差距 T3 比赛时间安排 7.50-8.10 t1 暴力复杂度都很大啊,完全没想法 t2 dfs可以试一试,但是感觉复杂度还是会炸,想 ...

  7. P5030 长脖子鹿放置

    题目背景 众周所知,在西洋棋中,我们有城堡.骑士.皇后.主教和长脖子鹿. 题目描述 如图所示,西洋棋的"长脖子鹿",类似于中国象棋的马,但按照"目"字攻击,且没 ...

  8. 省选模拟赛(正睿的最后一场)

    省选模拟赛(正睿的最后一场!!) 比赛时间安排 与正解的差距 T1 比赛时间安排 7.30-7.40 t1 能拿10分dfs,n=0的情况或许可以找规律 t2 看不懂 t3 暴力挺好写的,求lca太麻 ...

  9. 20200226省选模拟赛(by Tiw) T1 客星(长链剖分)

    题解 首先有一个性质:对于一个点,它的独特点都会分布在(它到整棵树的两个直径端点中较远的那一个端点的路径)上 我们如果以当前点为根,那么下面的那一部分直径就会消除上面的那一部分的直径的部分独特点 注意 ...

最新文章

  1. SSAS : 如何禁用SSAS的QueryLog
  2. 90.前端 :执行方法前提示功能
  3. LeetCode Range Sum Query - Mutable(树状数组、线段树)
  4. 最近有不少网友给我的书提出了问题,并要求尽快出版第二版
  5. 一步步实现:JPA的基本增删改查CRUD(jpa基于hibernate)
  6. 重磅!《Android 全埋点技术白皮书》开源所有项目源码!
  7. 利用Python编写网络爬虫下载文章
  8. 如何干净的删除vm_如何在macOS 10.15 Catalina绕过XProtect?
  9. 给iOS项目中添加图片,并通过UIImageView引用和显示该UIImage图片
  10. html5 canvas 不兼容safari浏览器_HTML5简介
  11. 15、Web安全测试之XSS
  12. 一段用于地址清洗的代码
  13. IDEA使用lombok时warn:Generating equals/hashCode implementation but without a call to superclass
  14. 机器视觉齿轮质量快速检测
  15. 一些实用但不为人知的Unix命令
  16. 【NOIP2012-Day2-T2-换教室】
  17. 今天给大家推荐一个Cleaner One for mac(系统清理优化工具)
  18. Python高速缓存和会话库——Beaker
  19. 排序算法lowB三人组--冒泡排序-选择排序-插入排序
  20. 密码技术的典型应用——电子印章

热门文章

  1. App测试环境搭建全过程,包含JAVA JDK配置、Android SDK、、Appium、Node.js、模拟器配置【究极保姆级】还不会我吃奥利给
  2. 清华北大2018届毕业生去向统计
  3. 前端练习--京东图片链接
  4. Springboot 设置上传文件大小
  5. 【linux】循序渐进学运维-基础篇-mount
  6. Python_Task07:类、对象与魔法方法
  7. Maven 三种archetype说明
  8. 一个服务器启动两个mysql实例
  9. python下载谷歌地图瓦片_python抓取天地图瓦片
  10. ECG起搏器数据库 下载 PacedECGdb