正题

题目链接:https://www.luogu.com.cn/problem/P1337


题目大意

nnn个点有重量wiw_iwi​,求重心。


解题思路

模拟退火随机找一个重心然后不断接近即可。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
const int N=1100;
const double Delit=0.993;
int n;double x[N],y[N],v[N],ansx,ansy,ans;
double calc(double nx,double ny){double ans=0;for(int i=1;i<=n;i++){double zx=x[i]-nx,zy=y[i]-ny;ans+=sqrt(zx*zx+zy*zy)*v[i];}return ans;
}
void S_A(){double x=ansx,y=ansy;double t=2000;while(t>1e-14){double nx=x+((rand()<<1)-RAND_MAX)*t;double ny=y+((rand()<<1)-RAND_MAX)*t;double now=calc(nx,ny),k=now-ans;        double now=calc(nx,ny),k=now-ans;printf("%d %lf %lf %lf\n",rand(),nx,ny,now);break;if(k<0){ans=now;x=nx;y=ny;ansx=nx;ansy=ny;}else if(exp(-k/t)*RAND_MAX>rand())x=nx,y=ny;t=t*Delit;}return;
}
void Solve(){ansx/=n;ansy/=n;ans=calc(ansx,ansy);S_A();S_A();S_A();return;
}
int main()
{srand(19260817);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lf%lf%lf",&x[i],&y[i],&v[i]);ansx+=x[i];ansy+=y[i];}Solve();printf("%.3lf %.3lf",ansx,ansy);
}

P1337-[JSOI2004]平衡点/吊打XXX【模拟退火】相关推荐

  1. P1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火

    平衡点 / 吊打XXX solution 记录一下模拟退火的几个题目 code /*SiberianSquirrel*//*CuteKiloFish*/ #include <bits/stdc+ ...

  2. 洛谷 P1337 [JSOI2004]平衡点 / 吊打XXX

    具体题目见洛谷 P1337 [JSOI2004]平衡点 / 吊打XXX 方法一:模拟退火 思路:当绳子平衡时,系统的能量最小,则此时物体总的重力势能要最小,也就是物体重量一定的情况下绳长最长,即桌子上 ...

  3. 模拟退火总结+洛谷模板题(P1337 [JSOI2004]平衡点 / 吊打XXX)

    原来就听说过模拟退火,然后一直觉得神奇,但是没有真正的去实现这个算法. 模拟退火对TSP之类的问题很实用. 1.概念:模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一 ...

  4. 洛谷P1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)

    传送门 先坑着,联赛活着回来的话我就写(意思就是我绝对不会写了) 1 //minamoto 2 #include<cstdio> 3 #include<cmath> 4 #in ...

  5. 【luogu1337】【JSOI2004】平衡点 / 吊打XXX(模拟退火)

    problem solution 题意: 给出n个重物的坐标和重量,他们通过一根绳子穿过正上方的洞连在桌面上的某个绳结处,求该绳结的坐标位置. 思路: 根据物理知识:当系统处于平衡状态时,系统的总能量 ...

  6. 平衡点 / 吊打XXX(洛谷-P1337)

    题目描述 如图:有n个重物,每个重物系在一条足够长的绳子上.每条绳子自上而下穿过桌面上的洞,然后系在一起.图中X处就是公共的绳结.假设绳子是完全弹性的(不会造成能量损失),桌子足够高(因而重物不会垂到 ...

  7. BZOJ 3680 吊打XXX 模拟退火

    首先这题应该改名叫吊打出题人 题目大意:给定n个质点,求重心 这n个质点的重心满足Σ(重心到点i的距离)*g[i]最小 模拟退火的裸题 尼玛交了两篇 死活过不去 各种改参数 最后发现是我的INF不够大 ...

  8. 【bzoj 3680】吊打XXX

    吊打XXX Time Limit: 10 Sec Memory Limit: 128 MBSec Special Judge Submit: 2715 Solved: 992 [Submit][Sta ...

  9. 【洛谷1337】[JSOI2004] 吊打XXX(模拟退火经典题)

    点此看题面 大致题意: 一个平面上有 n n n个点,每个点有1个权值,现在要选择平面上的一个点,使这 n n n个点的权值乘上到达选定点的距离之和最小. 模拟退火 我们可以用模拟退火来做这道题. L ...

最新文章

  1. php base64解码图片 base64加密图片还原
  2. Java接口对Hadoop集群的操作
  3. c++调用python3
  4. 网络请求可以返回数据的网站_实例解析|Python加解密VIP网站反爬请求头实现数据爬取...
  5. 疫情下跨境电商逆势增长,大数据告诉你如何抓住跨境网购新趋势
  6. Hello World社团冬季招新暨杭电Umis项目人才招募程序设计竞赛
  7. 批量处理文件,除了 Python,不妨试试 VIM!
  8. 汇顶软件开发初面总结20180921
  9. android 底部停靠 底部吸附_android让xml布局的底部跟随软键盘
  10. makefile懒人版(单个文件编译)
  11. java kettle jar包_Kettle中调用用户自定义的jar包
  12. arch linux 看图软件,菠萝看图
  13. 北京周末去哪儿 —— 香山
  14. 计算机模拟自由落体,CSS3 方块自由落体运动模拟
  15. BAPI_PO_CREATE1 创建采购订单
  16. 令人心酸至极的100个微瞬间
  17. Java中打印程序执行的开始时间和结束时间
  18. 人工智能有哪些方向?什么方向有前景?
  19. 接受-拒绝采样算法详细证明
  20. (转)对话云象CEO黄步添:区块链未来两到三年不会爆发

热门文章

  1. vb6 由于超出容量限制 不能创建新事务_分布式限流?你也能轻松玩转(没啥新技术)...
  2. CSDN《某一程序员竟然吃过shi?让我们走进他的生活,揭露背后的故事》
  3. java swing 示例_JAVA简单Swing图形界面应用演示样例
  4. java 根据客户端重定向_JavaWeb【1.4HttpServletResponse类、重定向】
  5. 通过图书编号查询python_文字版图书管理-python练习
  6. python 画树 递归_python递归函数绘制分形树的方法
  7. python可视化工具好用_6款Python必备的可视化工具推荐
  8. apk源码查看工具_如何查看Linux命令工具的源码?
  9. arma3自定义服务器,Arma3 生存服架设教程,武装突袭3游戏服务器架设
  10. android dialog 自定义布局,如何设置AlertDialog的自定义布局?