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

  • 基本上是照着别人的代码写的,模拟退火为什么一定能找到答案呢。。。迷惑,,有时间搜一搜证明啥的
  • sa步骤:这个是要确定一个(xi,yi)使得函数()值最小,所以先选一个开始的点(这里选的是所有桌子上的点的均值),然后(rand()*2-RAND_MAX)*T就是deltax,deltay,然后再算出移动了这个delta后的函数值,该函数值如果是一个更小的值,则接受,否则如果( exp(-delta/T)*RAND_MAX>rand() )才接受,注意这里的delta是函数值的差值,这个exp(-delta/T)是一个在0,1之间的数。
  • 产生移动距离:(rand()*2-RAND_MAX)*T  (这样正负都有)
  • 以一定的概率接受移动:exp(-delta/T)*RAND_MAX>rand()
  • 步骤:找到需要最优化的函数,找到移动方案,徐徐降温直到温度达到exp=1e-15退出,输出答案
  • 代码:
     #include <bits/stdc++.h>
    #define nmax 1010 using namespace std;
    int n;
    double x[nmax],y[nmax],w[nmax];
    double ansx,ansy;
    const double eps=1e-; int cnt=; double f(double nx,double ny){
    double tot=,tmp;
    for (int i=; i<n; i++) {
    tmp=sqrt( (nx-x[i])*(nx-x[i])+(ny-y[i])*(ny-y[i]) );
    tot+=tmp*w[i];
    }
    return tot;
    } void sa(){
    double t=200.0;
    while(t>eps){
    double nowx=ansx+(rand()*-RAND_MAX)*t,nowy=ansy+(rand()*-RAND_MAX)*t;
    double delta=f(nowx,nowy)-f(ansx,ansy);
    if( delta< || ( exp(-delta/t)*RAND_MAX>rand() ) ) { ansx=nowx; ansy=nowy; }
    t*=0.998;
    }
    } int main(){
    srand((int)time(NULL));
    cin>>n;
    for (int i=; i<n; i++) {
    scanf("%lf%lf%lf",&x[i],&y[i],&w[i]);
    ansx+=x[i];
    ansy+=y[i];
    }
    ansx/=(double)n;
    ansy/=(double)n;
    sa();
    printf("%.3lf %.3lf\n",ansx,ansy);
    return ;
    }

    模拟退火SA刷题记录的更多相关文章

    1. PE刷题记录

      PE刷题记录 PE60 / 20%dif 这道题比较坑爹. 所有可以相连的素数可以构成一张图,建出这张图,在其中找它的大小为5的团.注意上界的估算,大概在1W以内.1W内有1229个素数,处理出这些素 ...

    2. leetcode刷题记录--js

      leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...

    3. Leetcode刷题记录(python3)

      Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...

    4. 刷题记录:[HarekazeCTF2019]encode_and_encode

      目录 刷题记录:[HarekazeCTF2019]encode_and_encode 一.知识点 JSON转义字符绕过 php伪协议 刷题记录:[HarekazeCTF2019]encode_and_ ...

    5. 刷题记录:[De1CTF 2019]Giftbox && Comment

      目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

    6. 刷题记录:[强网杯 2019]Upload

      目录 刷题记录:[强网杯 2019]Upload 一.知识点 1.源码泄露 2.php反序列化 刷题记录:[强网杯 2019]Upload 题目复现链接:https://buuoj.cn/challe ...

    7. 刷题记录:[XNUCA2019Qualifier]EasyPHP

      目录 刷题记录:[XNUCA2019Qualifier]EasyPHP 解法一 1.error_log结合log_errors自定义错误日志 2.include_path设置包含路径 3.php_va ...

    8. 刷题记录:[DDCTF 2019]homebrew event loop

      目录 刷题记录:[DDCTF 2019]homebrew event loop 知识点 1.逻辑漏洞 2.flask session解密 总结 刷题记录:[DDCTF 2019]homebrew ev ...

    9. 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System

      目录 刷题记录:[CISCN2019 东北赛区 Day2 Web3]Point System 知识点 1.padding-oracle attack 2.cbc字节翻转攻击 3.FFMpeg文件读取漏 ...

    随机推荐

    1. [javascript] test() 方法进行正则验证

      test() 方法用于检测一个字符串是否匹配某个模式 最近遇到的某业务中进行发票抬头的正则验证如下: console.log(/^[a-zA-Z\u4e00-\u9fa5\s()()<>& ...

    2. 「Flink」理解流式处理重要概念

      什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...

    3. 关于建立 Carbon Forum 后 设置访问链接的问题

      如果不想访问的是根目录可以如下设置. location /cf { try_files $uri $uri/ /cf/index.php?$query_string;} 这样访问 /cf 目录就可以访 ...

    4. 清北学堂—2020.1提高储备营—Day 3(图论初步(二))

      qbxt Day 3 --2020.1.19 济南 主讲:李奥 目录一览 1.图论(kruskal算法,最短路径算法,拓扑排序) 总知识点:图论 一.kruskal算法 1.目的:求图的最小生成树 2 ...

    5. C# 数组冒泡排序复习

      using System; namespace runoob { class MyClass { static void Main(string[] args) { MyClass1 myClass ...

    6. intellji IDEA 2019版激活码(亲测可用 2019年10月14日08:53:54)

      MNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6I ...

    7. DockerFile优化总结

      1- dockerFile为什么要优化 ___ 随着我们对docker镜像的持续使用,在此过程中如果不加以注意并且优化,镜像的体积会越来越多.很多时候我们在使用docker部署应用时,会发现镜像的体积 ...

    8. P1980 计数问题(int,string,stringstream)

      题目描述 试计算在区间 1 到 n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 ...

    9. Python3中的支持向量机SVM的使用(有实例)

      https://www.cnblogs.com/luyaoblog/p/6775342.html 首先,我们需要安装scikit-learn 一.导入sklearn算法包  在python中导入sci ...

    10. ArcGIS JavaScript API with jQuery: Error: multipleDefine

      I would like to use ArcGIS JavaScript API 4.3 with jQuery, but I am getting following errors.  I sea ...