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

以x为原点,将力分解成横纵方向的力,每次退火时单独对答案的横纵坐标进行判断是否更新答案

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<cmath>
using namespace std;
#define eps 1e-6
#define maxn 1005
int n;
double T,dx,X,Y,x,y;
struct node{
double x,y,w;
}p[maxn],a,ans;
void SA()
{
T=;dx=0.98;
X=;Y=;
while(T>eps)
{
double c;
X=Y=;
for(int i=;i<=n;i++)
{
if(a.x==p[i].x)
{
if(a.y<p[i].y)Y+=p[i].w;
else if(a.y>p[i].y)Y-=p[i].w;
}
else if(a.y==p[i].y)
{
if(a.x<p[i].x)X+=p[i].w;
else if(a.x>p[i].x)X-=p[i].w;
}
else
{
c=sqrt((a.x-p[i].x)*(a.x-p[i].x)+(a.y-p[i].y)*(a.y-p[i].y));
X+=p[i].w*(p[i].x-a.x)/c;Y+=p[i].w*(p[i].y-a.y)/c;
}
}
c=sqrt(X*X+Y*Y);
if(x>abs(X))ans.x=a.x,x=abs(X);
if(y>abs(Y))ans.y=a.y,y=abs(Y);
a.x+=T*X/;
a.y+=T*Y/;
T*=dx;
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].w);
ans.x=ans.y=;a.x=a.y=;
x=y=;
SA();
printf("%.3lf %.3lf\n",ans.x,ans.y);
return ;
}

洛谷p1137 模拟退火的更多相关文章

  1. 洛谷P1137 旅行计划

    P1137 旅行计划 题目描述 小明要去一个国家旅游.这个国家有N个城市,编号为1-N,并且有M条道路连接着,小明准备从其中一个城市出发,并只往东走到城市i停止. 所以他就需要选择最先到达的城市,并制 ...

  2. 洛谷 P1137 旅行计划

    旅行计划 待证明这样dp的正确性. #include <iostream> #include <cstdio> #include <cstring> #includ ...

  3. 洛谷 P1137 旅行计划 (拓扑排序+dp)

    在DAG中,拓扑排序可以确定dp的顺序 把图的信息转化到一个拓扑序上 注意转移的时候要用边转移 这道题的dp是用刷表法 #include<bits/stdc++.h> #define RE ...

  4. 洛谷P1137 旅行计划 解题报告(拓扑排序+DP)

    我看了一下其他大佬的题解,大部分都是拓扑排序加上DP.那么我想有的人是不明白为什么这么做的,拓扑排序有什么性质使得可以DP呢?下面我就提一下. 对一个有向无环图(Directed Acyclic Gr ...

  5. 洛谷——P1137 旅行计划

    https://www.luogu.org/problem/show?pid=1137 题目描述 小明要去一个国家旅游.这个国家有N个城市,编号为1-N,并且有M条道路连接着,小明准备从其中一个城市出 ...

  6. 洛谷p1137旅行计划

    题面 关于拓扑排序 因为这好几次考试的题目里都有在DAG中拓扑排序求最长/短路 txt说它非常的好用 就找了个题做了下 拓扑排序就是寻找图中所有的入度为零的点把他入队 然后再枚举它所有的连到的点,只要 ...

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

    洛谷题目传送门 很可惜,充满Mo力的Mo拟退火并不是正解.不过这是一道最适合开始入手Mo拟退火的好题. 对模拟退火还不是很清楚的可以看一下 这道题还真和能量有点关系.达到平衡稳态的时候,物体的总能量应 ...

  8. bzoj 3680(洛谷1337) 吊打XXX——模拟退火

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3680 https://www.luogu.org/problemnew/show/P1337 ...

  9. 洛谷 P1337 平衡点 & bzoj 3680 吊打 XXX —— 模拟退火

    题目:https://www.luogu.org/problemnew/show/P1337 https://www.lydsy.com/JudgeOnline/problem.php?id=3680 ...

随机推荐

  1. Ajax与PHP通信

    以下是HTML的Js代码 $data = { va:$('#num').text() }; $.ajax({ type: 'POST', url: "A.php", data: $ ...

  2. 解决 el-autocomplete 不显示及没数据时闪一下的问题

    项目中用到了elementUI中的远程搜索即 el-autocomplete 组件,估计首次使用的都会遇到一些小问题,只要你能认真看完并且耐心理解,保证能帮到你,效果图如下: 组件代码: <el ...

  3. springboot-aop日志打印

    package com.cinc.ecmp.client; import com.cinc.ecmp.enums.BackResultEnum; import com.cinc.ecmp.except ...

  4. 纵我不往,知识不来--学习Java第一周心得

    暑假第一周,也是开始学习java的第一周. 本周的主要时间花在了小学期的任务上,但也草草开始了java的学习.首先安装好了所需要的软件,然后在网上下载了一份<Java基础笔记>,看了前五章 ...

  5. Qt中动态链接库的使用

    转自: http://www.qtcn.org/bbs/read.php?tid=14719 现在有些软件有自动升级功能,有些就是下载新的DLL文件,替换原来的动态链接库.MFC好象也有类似机制 Qt ...

  6. Django的安装命令

    国内的一些pipy镜像源: 1.清华源: https://pypi.tuna.tsinghua.edu.cn/simple 2.豆瓣源: https://pypi.douban.com/simple ...

  7. 【题解】Comet OJ Round 70 简要题解

    [题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...

  8. 洛谷$P1390$ 公约数的和 欧拉函数

    正解:欧拉函数 解题报告: 传送门$QwQ$ 首先显然十分套路地变下形是趴 $\begin{align*}&=\sum_{i=1}^n\sum_{j=1}^n gcd(i,j)\\&= ...

  9. react 报红错误汇总

    react  报红错误汇总 一.Uncaught TypeError: Cannot read property 'value' of undefined 未知类型错:无法读取未定义的属性“value ...

  10. IntelliJ IDEA的常用设置及快捷键

    IntelliJ IDEA的常用设置及快捷键 基本设置 打开设置:ctrl+alt+s 修改主题.字体.字号 快捷键设置 创建项目和模块 标记源码文件 标记资源文件 设置jdk版本号 配置Tomcat ...