【BZOJ3680】吊打XXX 计算几何 广义费马点+模拟退火(爬山算法)
来源:互联网 发布:nba数据库统计三分 编辑:程序博客网 时间:2024/05/18 02:28
做题之前:
令一个点到一个分身的距离为两点间的几何距离*这个分身的重力,则到所有分身的距离之和最小的点即为所求。
因此题各种参数实在太恐怖,使得模拟退火TLE/WA无数次。强烈建议此题更名为“吊打出题人”。
在此感谢网上的大神给了我们调参数的伟大参考!!!
吊打XXX C++代码实现:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 10010using namespace std;int n,x[N],y[N],w[N];double dis,ansx,ansy,xx,yy;double dist(double x1,double x2,double y1,double y2){return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int main(){cin>>n;for(int i=1;i<=n;i++)scanf("%d%d%d",&x[i],&y[i],&w[i]);double t=1000;for(int i=1;i<=n;i++)ansx+=x[i]*w[i],ansy+=y[i]*w[i];ansx/=n,ansy/=n;while(t>0.000000001){xx=yy=0;for(int i=1;i<=n;i++)dis=dist(ansx,x[i],ansy,y[i]),xx+=(x[i]-ansx)*w[i]/dis,yy+=(y[i]-ansy)*w[i]/dis;ansx+=xx*t,ansy+=yy*t;t=t>0.5?t*0.5:t*0.98;}printf("%.3lf %.3lf\n",ansx,ansy);return 0;}
0 0
- 【BZOJ3680】吊打XXX 计算几何 广义费马点+模拟退火(爬山算法)
- 【BZOJ3680】吊打XXX 广义费马点 模拟退火
- 【模拟退火\爬山算法】[HYSBZ/BZOJ3680]吊打XXX(吊打GTY)
- BZOJ3680 吊打XXX(模拟退火算法)
- BZOJ 3680 吊打XXX 计算几何 模拟退火 广义费马点
- bzoj3680 吊打XXX 爬山算法
- [BZOJ3680]吊打XXX && 模拟退火
- 【bzoj3680】【吊打XXX】【模拟退火】
- [bzoj3680] 吊打XXX:模拟退火 or 模拟力学情景
- [BZOJ 3680]吊打XXX(广义费马点、模拟退火搜索)
- 模拟退火法(吊打XXX)Bzoj3680
- 模拟退火(bzoj 3680: 吊打XXX)
- BZOJ_P3680 吊打XXX(模拟退火)
- 【BZOJ3680】吊打XXX
- [BZOJ3680]吊打XXX
- bzoj3680: 吊打XXX
- BZOJ3680 吊打XXX
- bzoj3680 吊打XXX
- 解决SVN造成的桌面图标问号
- 语法——原型prototype深入理解
- Remove Duplicates from Sorted List II
- js 添加监听
- LeetCode Minimum Path Sum
- 【BZOJ3680】吊打XXX 计算几何 广义费马点+模拟退火(爬山算法)
- poj 3680 intervals
- 软了个考——其实一开始总结编译原理我是拒绝的
- android layout及其控件在选中时的焦点冲突问题
- 混合高斯背景建模(opecv)
- 【Java】【TIJ】验证Java对类的基本数据类型的成员的默认初始化结果
- ArcGIS GP服务发布和客户端调用
- Android Services
- 如何参与一个 GitHub 开源项目?