bzoj3680 吊打XXX
来源:互联网 发布:转发长视频软件 编辑:程序博客网 时间:2024/05/21 19:46
模拟退火。
#include<cstdio>#include<cmath>#include<algorithm>using namespace std;const double tmax=10000,r=0.995,eps=1e-5;const int maxn=10010;int xx[maxn],yy[maxn],w[maxn],n;double cal(double x,double y){ double ret=0; for (int i=1;i<=n;i++) ret+=sqrt((x-xx[i])*(x-xx[i])+(y-yy[i])*(y-yy[i]))*w[i]; return ret;}double get(double lim){ return (double)rand()/RAND_MAX*(2*lim)-lim;}int main(){ srand(233); double x=0,y=0,x1,y1,now,tem; scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d%d%d",&xx[i],&yy[i],&w[i]),x+=xx[i],y+=yy[i]; x/=n; y/=n; now=cal(x,y); for (double t=tmax;t>eps;t*=r) { x1=x+get(t); y1=y+get(t); tem=cal(x1,y1); if (tem<now||exp((now-tem)/t)>get(0.5)+0.5) { x=x1; y=y1; now=tem; } } for (double t=0.1;t>eps;t*=r) { x1=x+get(t); y1=y+get(t); tem=cal(x1,y1); if (tem<now) { x=x1; y=y1; now=tem; } } printf("%.3f %.3f\n",x,y);}
阅读全文
0 0
- 【BZOJ3680】吊打XXX
- [BZOJ3680]吊打XXX
- bzoj3680: 吊打XXX
- BZOJ3680 吊打XXX
- bzoj3680 吊打XXX
- [BZOJ3680]吊打XXX && 模拟退火
- 【bzoj3680】【吊打XXX】【模拟退火】
- bzoj3680 吊打XXX 爬山算法
- 模拟退火法(吊打XXX)Bzoj3680
- 【BZOJ3680】吊打XXX 广义费马点 模拟退火
- BZOJ3680 吊打XXX(模拟退火算法)
- 【模拟退火\爬山算法】[HYSBZ/BZOJ3680]吊打XXX(吊打GTY)
- [bzoj3680] 吊打XXX:模拟退火 or 模拟力学情景
- 【BZOJ3680】吊打XXX 计算几何 广义费马点+模拟退火(爬山算法)
- bzoj-3680 吊打XXX
- 3680: 吊打XXX
- 【bzoj 3680】吊打XXX
- BZOJ 3680: 吊打XXX
- JAVA SE集合总结
- Windows编程_Lesson005_项目预备_初识进程
- 合格的IT人士要养成的习惯:设置系统还原点
- 【操作系统】进程调度算法
- android 相关网络请求 get
- bzoj3680 吊打XXX
- 第12章 常见web攻击及防范
- 分配内存_释放内存
- 2017年6月2日,周结(十五),一些简单的算法题
- Intellij IDEA运行Web项目
- 20170602
- 数码管流水灯
- Linux基本命令练习
- 短信发送---ihuyi.com 的第三方平台