【模拟退火】 poj1379 Run Away

Poj1379模拟退火 poj1379 给予平面内一个点集; 使用模拟退火求出一个点使该点到上述点集内任意一点最短距离最长。 立即下载

Run Away

题目:http://poj.org/problem?id=1379

题意:平面上有一个矩形,在矩形内有一些陷阱。求得矩形内一个点,该点离与它最近的已知陷阱最远。

题解:我是用模拟退火解的,这题本身不难,但是可以从中大致了解模拟退火的基本的概念。

      这个是别人写的模拟退火模型,挺准确的:

      模拟退火算法的模型

① 初始化:初始温度T(充分大),初始解状态S(算法迭代的起点), 每次迭代次数L

② for k=1 to L 做③至⑥

③ 产生新解S’

④ 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数

⑤ 若Δt′<0则接受S’作为新的当前解,否则以概率e-Δt/k接受S’作为新的当前解

⑥ 如果满足终止条件则输出当前解作为最优解,结束程序

⑦ T逐渐减少,然后转②

代码:

#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
using namespace std;
#define inf (1e20)
#define eps (1e-3)
#define pi  (acos(-1.0))
double ansx[35],ansy[35],d[35],x[1005],y[1005];
double dist(double a,double b,double x,double y)//求两点距离
{
    return sqrt((a-x)*(a-x)+(b-y)*(b-y));
}
int main()
{
    int cas,n;
    double xi,yi,px,py,cnt,dx,dy,tx,ty,td;
    scanf("%d",&cas);
    srand((unsigned)time(NULL));//设置随机数种子
    for(;cas--;)
    {
        scanf("%lf%lf%d",&xi,&yi,&n);
        for(int i=0;i<n;++i)
             scanf("%lf%lf",x+i,y+i);
        for(int i=0;i<35;++i)//初始解集
        {
            ansx[i]=double(rand()%1000)/1000*xi;
            ansy[i]=double(rand()%1000)/1000*yi;
            d[i]=inf;
            for(int j=0;j<n;++j)
                d[i]=min(d[i],dist(ansx[i],ansy[i],x[j],y[j]));
        }
        double delta=double(max(xi,yi))/(sqrt(1.0*n));//初始温度
        for(;delta>eps;)
        {
            for(int i=0;i<35;++i)
            {
                px=ansx[i];
                py=ansy[i];
                for(int j=0;j<35;++j)
                {
                    cnt=double(rand()%1000)/1000*10*pi;
                    dx=delta*cos(cnt);
                    dy=delta*sin(cnt);
                    tx=px+dx;
                    ty=py+dy;
                    if(tx<0||tx>xi||ty<0||ty>yi) continue;
                    td=inf;
                    for(int k=0;k<n;++k)
                        td=min(td,dist(tx,ty,x[k],y[k]));
                    if(td>d[i])//更新更优解
                    {
                        d[i]=td;
                        ansx[i]=tx;
                        ansy[i]=ty;
                    }
                }
            }
            delta*=0.8;//减小温度
        }
        double ans=0;
        int k;
        for(int i=0;i<35;++i)//找最优解
            if(d[i]>ans)
            {
                k=i;
                ans=d[i];
            }
        printf("The safest point is (%.1f, %.1f).\n",ansx[k],ansy[k]);
    }
    return 0;
}
来源: http://blog.youkuaiyun.com/acm_ted/article/details/7953157

UART全功能测试指南:环路/DMA/RS485/硬件流控实战 UART(通用异步收发器)是嵌入式系统中最基础的串行通信接口,其核心原理基于起始位、数据位、校验位与停止位的异步帧结构,依赖精确的波特率时钟同步与采样重建机制。在工业与物联网场景中,UART不仅需保障基本通信可靠性,更需支持DMA卸载、RS485半双工自动方向控制、RTS/CTS硬件流控等进阶能力,以提升实时性、抗干扰性与系统资源效率。典型应用涵盖调试日志输出、传感器数据采集、Modbus RTU总线通信及固件空中升级。本指南聚焦UART外设测试实践,覆盖环路自检、DMA吞吐验证、RS485时序对齐、硬件流 阅读详情

相关推荐

海思Hi3516DV300实战:从yolov5模型训练到Sort跟踪算法的完整部署流程

本文详细介绍了在海思Hi3516DV300芯片上部署YOLOv5目标检测与Sort多目标跟踪算法的完整流程。内容涵盖从特定场景数据训练YOLOv5模型、模型格式转换(PyTorch到ONNX再到Caffe),到利用海思NNIE引擎生成WK模型并进行端侧集成与优化的全链路实战经验,旨在解决嵌入式设备上实时人流量统计等实际应用挑战。

weixin_29034963的博客 339

poj_1379_run away

#include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) #define EPS 1e-8 #define INF 2000000000 #define PI acos(-1.0) const in

cxy7tv的博客 401

基于FreeSwitch与SIP UA的蓝牙电话坐席系统实战部署

本文详细介绍了如何基于FreeSwitch开源软交换平台,结合SIP UA软电话与蓝牙电话App,在局域网内搭建一套低成本、自主可控的电话坐席系统。文章提供了从环境准备、FreeSwitch安装配置、用户与拨号计划创建,到SIP软电话测试和蓝牙设备接入的完整实战部署流程,并给出了关键优化与排坑指南,适合小微团队或个人开发者构建内部通讯工具。

zeta9的博客 544

poj1379——Run Away

模拟退火算法。其中 delta 取 (max(矩行边长))/sqrt(m).算法的正确性与L  N的取值有关系。来源于《浅谈随机化思想在几何问题中的应用》  By顾研参考:http://boatswain.info/lovers/wordpress/?p=117#include #include #include #include using namespace std; #define N 30 #define L 30 #define esp 1e-2//即1/100 与所求精度有关

r_ax的专栏 581

小鹏P7车载以太网诊断实战:从OBD口定义到DoIP协议验证

本文详细解析了小鹏P7车载以太网诊断的实战过程。从OBD接口的针脚定义入手,依据ISO13400标准,确认了以太网线对位置,并指导制作专用的RJ45转OBD线束。通过搭建测试环境,使用Ping、端口扫描及Wireshark抓包,最终成功验证了车辆对DoIP协议的支持,为基于以太网的高速诊断与刷写提供了完整的技术路径。

CAT789的专栏 523

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 667

poj 1379 分类: poj templa...

传说正解是V图,想想都觉得难写。。。 模拟退火~ 随机取几个点,将温度设置为随机范围,然后随机爬山算法即可。。。 如果参数设置得比较优,就可以在精度范围内取得最优解。。。 所以暂时就不学V图了(反正写不出) 注意如果用G++交题的话,要用 %f 输出。。。 我以后还是用C++交题吧,虽然语法比较严格,但不像G++那样不规范。。。 #incl...

aa288288的博客 149

AI Agent Harness自动化漏洞扫描

本文要介绍的AI Agent Harness自动化漏洞扫描方案,正是为了解决传统漏扫的上述痛点而生。漏洞检出率提升35%以上,逻辑漏洞检出率从不足30%提升到92%误报率从27%降到3%以下,人工复核成本降低90%支持自定义业务系统、IoT、工控等多场景资产扫描,适配成本降低80%内置反馈学习机制,扫描效果越用越好AI Agent是指具备自主感知、决策、行动能力的大模型驱动程序,它可以根据给定的目标,自主调用工具、规划步骤、完成任务。

AI 原生应用开发的博客 473

poj1379

poj1379 题意 给出 n 个洞的坐标,要求找到一点使得这一点距离最近洞的距离最远。 分析 通过这道题学习一下模拟退火算法, 这种随机化的算法,在求解距离且精度要求较小时很有用。 简而言之,由随机选取的多个初始点,进行多次的随机变换,并根据是否更优而选择是否保留答案, 那么首先要选择两个值,delta 表示初始最大变换的半径(即对应初始的火温),d 控制半径缩小的快慢(火温减小的快慢)。 这道...

weixin_34019144的博客 352

Agentic-Desktop-Pet:构建本地智能桌面助手的架构与实践

智能体(Agent)作为人工智能领域的重要概念,是指能够感知环境、自主决策并执行任务以实现目标的软件实体。其核心原理在于结合感知、决策与执行模块,通过大语言模型(LLM)等推理引擎处理信息并驱动行动。这种架构的技术价值在于将AI的认知能力与具体的操作系统环境深度融合,从而创造出能主动理解用户上下文、提供个性化服务的智能伙伴。在应用场景上,智能体技术正从云端对话机器人向本地化、场景化的桌面助手演进,旨在解决传统自动化工具缺乏智能、而纯聊天机器人脱离操作环境的问题。本文探讨的Agentic-Desktop-Pe

weixin_27210125的博客 623

使用亚组分析进行子组分析并可视化森林图 - R语言

通过亚组分析和森林图的结合,我们可以更好地理解不同子组之间的差异和效果大小。当然,在实际应用中,还需要考虑多种因素,如样本量、异质性等,以得到更准确的结果和结论。每个森林图中的水平线代表了每个子组的效应估计,线的长度表示了该效应估计的置信区间。假设我们有一个包含研究对象的数据框(data frame),其中包括了治疗组和对照组的结果数据,以及一些可能的影响因素作为调整变量。在本例中,我们将比较两种不同的治疗方法(A和B)对结果变量的影响,并调整了一个额外的变量。是结果变量和对照组变量的列名。

2301_79326857的博客 1236

POJ-1379 Run Away 计算几何 模拟退火

POJ-1379 Run Away 题意: 平面上给定n个点, 要求找到一个点使得到所有点的距离最大。 分析: 模拟退火, 计算到每个点的最小距离, 使得最小距离最大。 代码: #include &amp;lt;iostream&amp;gt; #include &amp;lt;cstring&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;cmath&amp;gt

YancyKahn 482

史上最全!研究生科研必备科研工具(含AI科研工具),附使用说明和示例

这些工具在科研中的应用非常广泛,可以帮助研究生更高效地完成研究任务。为了更好地利用这些工具,建议深入学习它们的官方文档和教程,或者参加相关的工作坊和培训。

智能AI让学术科研更容易 3945

【POJ1379】Run Away 模拟退火

题意: 给若干个点,现在求一个点,使它到离它最近的点尽量远。 题解: 我写的是模拟退火先玩一会,然后小幅度爬爬山。 种子的采用是20134858 是生日^人的名字首字母hash。 诶可算A了,看来我脸还不是太黑。 代码: #include #include #include #include #include #define N 10100

辗转山河弋流歌 1531

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

poj1379Run Away【模拟退火】

Language: Default Run Away Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7677   Accepted: 2335 Description One of the traps we will encounter in the Py

走一步再走一步 967

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[poj 1379]Run Away[模拟退火]

题意: 找出矩形中与所有点距离最远的点. 思路: 仍然是模拟退火, 需要更改的就是估价函数, 精度D&边界问题(求最小值的话不需要额外限制边界,因为边界外的肯定没有边界内的距离短嘛,但是求最长距离的话就有可能选择边界外的点了), 判断条件. /* ...that has the maximal distance from all the holes中,和所有点的距离定义为所有点距中最小的

以中有足乐者... 1114

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

poj 1379 Run Away 模拟退火

Run Away Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 7520   Accepted: 2280 Description One of the traps we will encounter in the Pyramid is located in

呼,是出一口气;吸,是争一口气! 657

POJ 1379 Run Away 【基础模拟退火】

题意:找出一点,距离所有所有点的最短距离最大 二维平面内模拟退火即可,同样这题用最小圆覆盖也是可以的。 Source Code: //#pragma comment(linker, "/STACK:16777216") //for c++ Compiler #include <stdio.h> #include <iostream> #include ...

weixin_30526593的博客 142

【POJ 1379 Run Away模拟退火】

/*模拟退火*/ #include #include #include #include using namespace std; int M,X,Y; #define Ran 30 #define Run 30 int max(int x,int y) { return x>y?x:y; } struct node { double x,y,d; }stu[1005],p[30]; dou

csf的专栏 923

poj 1379 Run Away 计算几何 模拟退火

题目大意:给出平面内的yi

(╯°口°)╯(┴—┴ 1435

POJ, 1379Run Away(模拟退火算法)

题意:在给定的范围内找一点,使得该点到所有点距离最小距离最大,求这个最大距离。 分析:模拟退火算法,先随便找一个点,然后运用模拟退火算法。 退火算法参考:http://www.cnblogs.com/heaad/archive/2010/12/20/1911614.html #include #include #include #include #i

哎哟不错哦的博客 735

POJ 1379 Run Away(模拟退火)

题目链接:http://poj.org/problem?id=1379 这道题目应该算是真正意义上的模拟退火了,每一步基本上都是随机的 防止一个不准确,来30个,防止一个方向不行,随机来30个方向,取结果 最好的一个方向! #include #include #include #include #include #include #include #define maxn

sunrain的专栏 1450

POJ 1379 Run Away 模拟退火

POJ 1379 Run Away 模拟退火

-Claude 1267

POJ--1379[Run Away] 模拟退火

Run AwayTime Limit: 3000MSMemory Limit: 65536KTotal Submissions: 1967Accepted: 549<br />DescriptionOne of the traps we will encounter in the

___简言 1447

POJ 1379 Run Away(基础模拟退火)

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove  题目:找出一点,距离所有所有点的最短距离最大 http://poj.org/problem?id=1379  随机化步长,贪心调整即可。 其实用模拟退火需要证明的~~~~%#@&%……@%¥%@证明完毕 没啥好说

窝不是爱酱,喵~~~~ 4079

poj 1379 Run away 模拟退火

第一道模拟退火题是看了别人的代码才会的,现在对这种题目只能是乱搞了。         题意:求距离所有点中最近的点的距离最大。        代码:   #include #include #include #include #define sqr(x) ((x)*(x)) #define eps 1e-3 #define Maxn 1000+10 #define INF 0x3f3f3f3

a1ways_online的专栏 371
上一篇: SRM 554 DIV2
下一篇: 【STL】 hdu4287 Intelligent IME
ACM_Ted
博客等级 码龄15年 122粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值