2017多校六 1002题 hdu 6097 Mindis 相似三角形 计算几何

从 ST22 到根因定位:ABAP Dumps 全景排查指南(含典型 Dump 案例、修复套路与云时代实践) 本文系统介绍了SAP系统中ABAP短转储(Dump)的分析方法。首先指出短转储是程序运行时无法处理的错误导致系统强制终止执行。文章详细解析了短转储报告各区块的作用:从概述性的Short Text和What happened,到核心的Error Analysis和Source Code Extract,再到关键的系统字段Contents of system fields和调用栈Active Calls/Events。针对不同场景提供了排查建议:客户代码应建立可控边界,标准对象优先查阅SAP Notes。最后推 阅读详情

题目链接


题意:

圆心 O 坐标(0, 0), 给定两点 P, Q(不在圆外),满足 PO = QO,

要在圆上找一点 D,使得 PD + QD 取到最小值。


官方题解:

做P点关于圆的反演点P',OPD与ODP'相似,相似比是|OP| : r。

Q点同理。

极小化PD+QD可以转化为极小化P'D+Q'D。

当P'Q'与圆有交点时,答案为两点距离,否则最优值在中垂线上取到。

时间复杂度 O(1)O(1)

补充说明:

反演:

设在平面内给定一点O和常数k(k不等于零),对于平面内任意一点A,确定A′,使A′在直线OA上一点,并且有向线段OA与OA′满足OA·OA′=k,我们称这种变换是以O为的反演中心,以k为反演幂的反演变换,简称反演。——百度百科

在这里,k 即为圆半径 r ^ 2,因此,相似就是显然的了。


当 P'Q' 与圆有交点时:

不妨设交点为 O',若 D 不为 O',则 P'D + Q'D >  P'Q'(三角形两边之和大于第三边);当且仅当 D 取 O' 时,P'Q + Q'D 取到最小值,即为 P'Q'。

当 P'Q' 与圆无交点时:

不妨将 P' 与 Q' 看成椭圆的两个焦点,当椭圆慢慢变大时,第一个碰到的圆上的点 D 即为使得 P'D + Q'D 最小的点;画个图就很显然了,第一个碰到的点即为 PQ 的中垂线与圆的交点。


至于判断有 P'Q' 与圆有没有交点,就是圆心到直线的距离与半径比较,又因为此处 P'O=Q'O,所以只需要比较 P'Q' 的中点到圆心的距离和半径的大小。


注意点:

1. 注意 PO = QO = 0 的情况

2. 尽量用比例而不是角度进行计算


Code:

#include <bits/stdc++.h>
#define eps 1e-8
void work() {
    double r, x1, y1, x2, y2;
    scanf("%lf%lf%lf%lf%lf", &r, &x1, &y1, &x2, &y2);
    double d0 = sqrt(pow(x1, 2) + pow(y1, 2));
    if (fabs(d0) < eps) {
        printf("%.7f\n", 2 * r);
        return;
    }
    double k = r * r / (d0 * d0);
    double x3 = x1 * k, x4 = x2 * k, y3 = y1 * k, y4 = y2 * k;
    double mx = (x3+x4)/2, my = (y3+y4)/2, ans;
    double d = sqrt(pow(mx,2)+pow(my,2));
    if (d <= r) {
        double dist = sqrt(pow(x3 - x4, 2) + pow(y3 - y4, 2));
        ans = dist * d0 / r;
    }
    else {
        double kk = r / d;
        double smx = mx * kk, smy = my * kk;
        ans = 2 *sqrt(pow(smx - x1, 2) + pow(smy - y1, 2));
    }
    printf("%.7f\n", ans);
}
int main() {
    int T;
    scanf("%d", &T);
    while (T--) work();
    return 0;
}


题解里面还说了...

优秀的黄金分割三分应该也是可以卡过的。

不优秀的三分哭晕在墙角(。

不过看出相似三角形什么的真是太妙了...服气

ransac拟合2D圆(三点定圆 c++详细版) RANSAC(Random Sample Consensus,随机采样一致性)算法是一种基于随机采样的迭代算法,主要用于从一组包含大量噪声和异常值(外点)的数据中估计数学模型的参数。 阅读详情

相关推荐

手把手教你用FPGA实现SGMII接口:从IP核配置到板级调试全流程

本文详细介绍了如何在Xilinx 7系列FPGA上实现SGMII(Serial Gigabit Media Independent Interface)接口的全流程,包括IP核配置、约束编写和硬件调试。通过具体的硬件选型建议、软件工具链配置和PCB设计规范,帮助开发者快速构建稳定可靠的千兆通信链路,并提供了常见故障排查和性能优化技巧。

weixin_29194693的博客 296

Mindis(圆的反演变换)

题意: 圆心 O 坐标(0, 0), 给定两点 P, Q(不在圆外),满足 PO = QO, 要在圆上找一点 D,使得 PD + QD 取到最小值。 官方题解: 做P点关于圆的反演点P',OPD与ODP'相似,相似比是|OP| : r。 Q点同理。 极小化PD+QD可以转化为极小化P'D+Q'D。 当P'Q'与圆有交点时,答案为两点距离,否则最优值在中垂线上取到。 时间复杂度...

Draven__的博客 1532

DSP复习笔记(5)——外部接口模块XINTF

【注意】 1. 芯片型号:TMS320F28335 2. 适用于NJUSTEO李彧晟老师课程 3. 参考资料:《TMS320F28335 DSP原理、开发及应用》 4. 对应PPT第二章 5. 本章内容较多而且较为重要,请结合PPT一起复习

BerenCamlost的博客 1万+

Mindis(HDU-6670)

Problem Description 平面上有n个矩形,矩形的边平行于坐标轴,现在度度熊需要操控一名角色从A点走到B点。 该角色可以上下左右移动,在恰被k个矩形覆盖的区域,该角色的速率为k+1个距离/秒(矩形覆盖区域包括边界)。 请求出A移动到 B 最快需要多少秒。 Input 第一行一个整数 T (1≤T≤5) 表示数据组数。 对于每组数据,第一行输入一个整...

Alex_McAvoy的博客 781

OFDM接收机同步——分组检测

上一篇讲了OFDM发射机中的长短训练序列生成原理,基于此可以得到长短训练序列的准确数值,为接收机中的符号同步中的相关运算提供基础。 进入符号同步前,首先来看OFDM接收机中的第一步——分组检测。分组检测就是检测突发传输方式的信道上是否有新的数据到达,算法的好坏直接影响着接收机的后续工作性能。 一、本文意义 基于《基于xilinx fpga 的ofdm的通信系统基带设计》这本教材中分组检测算法原理,通过matlab编程仿真验证“延时相关+保持长度”分组检测算法的有效性。同时,通过仿真证明教材上的判决公式的问题

boayel的博客 2201

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2082

求相似三角形的几种方法,相似三角形算法有哪些

简介梅涅劳斯(Menelaus)定理(简称梅氏定理)是由古希腊数学家梅涅劳斯首先证明的。它指出:如果一条直线与△ABC的三边AB、BC、CA或其延长线交于F、D、E点,那么(AF/FB)×(BD/DC)×(CE/EA)=1。或:设X、Y、Z分别在△ABC的BC、CA、AB所在直线上,则X、Y、Z共线的充要条件是(AZ/ZB)*(BX/XC)*(CY/YA)=1证明一:过点A作AG‖BC交DF的延长线于G,则AF/FB=AG/BD,BD/DC=BD/DC,CE/EA=DC/AG。

纸尿裤排行 2564

泰凌微8258入门教程 环境篇④——开发板+烧录器 8258mesh新手套件购买

工欲善其事,必先利其器。 淘宝链接:https://item.taobao.com/item.htm?

4128

[hdu] 6097 "优秀的黄金分割三分"

题解写了这句话,比赛时写了三分。T 到飞起。赛后发现三分写丑了。然后,还是需要快速读入。果然我还是菜呀、 #include"bits/stdc++.h" using namespace std; const double Pi = acos(-1.0); double x1, y1, x2, y2; double rr; typedef long long LL; struct FastIO {

fake_fan的博客 787

Ubuntu\linux,加载mcp2515的驱动,链接mcp2515,mcp2515的这个驱动默认在linux内核中。jetson nao、香橙派、树莓派

3. 其他文章,还要进行驱动编译就比较复杂了(不推荐)1.树莓派+MCP2515+

pvmsmfchcs的博客 1564

一篇文章足够你学习Bluez,提供史上最全的Bluez教程,让你告别Bluez从入门到放弃

Bluez是真的难,说“入门到放弃”真的毫不夸张,Bluez的学习曲线陡峭,要求对Linux 系统/驱动概念、D-Bus 通信和蓝牙协议都有要求,加上网络上其实没有一个完整的介绍Bluez系列的文档,所以不管是蓝牙初学者还是蓝牙从业人员,都有不小的难度。

朝气蓬勃 2535

HDU 6097 Mindis(反演)

【题目链接】hdu 6097 【题意】有一个圆心在原点的圆,给定圆的半径,给定P、Q两点坐标(PO=QO,P、Q不在圆外),取圆上一点D,求PD+QD的最小值。 【样例】 Sample Input 4 4 4 0 0 4 4 0 3 3 0 4 0 2 2 0 4 0 1 1 0   Sample Output 5.6568543 5.6568543 5.894503

No Rain,No L'Arc~en~Ciel 1461

麻辣香锅病毒分析

Spicy Hot Pot浏览器劫持病毒(麻辣香锅病毒)从2020年初被安全公司监测到,因其病毒模块带有MLXG_KM被安全行业代称麻辣香锅病毒。目前通过各种激活工具传播, 包括暴风激活、小马激活和KMS激活等诸多工具,疑似与下载站进行合作推广此类激活工具。Spicy Hot Pot 是一个浏览器劫持 Rootkit,它会将用户的主页更改为指向恶意软件操作员控制的页面,此外还会将内存转储从机器上传到预定义的服务器,并结合本地更新功能以确保其保持更新。通常浏览器劫持者会通过更改用户主页的恶意可执行文件或注册表

不忘初心,护天下安全! 4788

HDU 2017 多校联合训练赛6 1002 6097 Mindis 反演变换 计算几何

Mindis Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Special Judge Problem Description The center coordinate of the circle C is O, the coordinate of O is

SDNU lyk的博客 775

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

(2017多校6)1002/hdu-6097 Mindis(计算几何)

(2017多校6)1002/hdu-6097 Mindis(计算几何) Problem Description The center coordinate of the circle C is O, the coordinate of O is (0,0) , and the radius is r. P and Q are two points not outside the circle, and PO = QO. You need to find a point D on the circle, wh

Vmorish 665

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU 6097Mindis(利用椭圆二分)

Mindis Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1887    Accepted Submission(s): 321 Special Judge Problem Description The cen

ftx456789的博客 664

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU 6097 Mindis

题目链接题目意思在圆内有两点P,Q,满足OP=OQ。现在要在圆上找一点D,使得DP+DQ最短。解题思路我们可以分为两种情况来讨论: 1、OP = OQ = r 的情况。这是最短的距离应该就是PQ的连线距离了。 2、OP = OQ < 的情况。这时我们引进一个反演点的知识。反演点:已知圆O的半径为R,从圆心O出发任作一射线,在射线上任取两点M,N。若OM=m,ON=n,且mn=R^2,则称点M,N

长颜草的博客 516

HDU 6097 Mindis【计算几何+反演点】

题目链接题意:有一个圆心在原点,半径为rr的圆,圆内有两点PP,QQ到圆心的距离相同,在圆上找一点DD,使|DP|+|DQ||DP|+|DQ|最小。求这个最小值。当然不是直接取中垂线这么简单啊…… 反演点: 已知圆OO的半径为RR,从圆心OO出发任作一射线,在射线上任取两点M,NM,N。若|OM|=m|OM|=m,|ON|=n|ON|=n,且m∗n=R2m*n=R^2,则称点M,NM,N是

hxh的博客 523

多校 HDU6097 Mindis (几何)

题意: 有个圆,圆内有两个点P,Q,已知PO=QO,求圆上一点D,使得PD+QD最小 思路: 1002 Mindis 很不幸不总是中垂线上的点取到最小值,考虑点在圆上的极端情况。 做P点关于圆的反演点P',OPD与ODP'相似,相似比是|OP| : r。 Q点同理。 极小化PD+QD可以转化为极小化P'D+Q'D。 当P'Q'与圆有交点时,答案为两点

a7f650ebd327889c的博客 794

hdu6097-反演点+相似三角形

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意: 给一个圆C和圆心O,P、Q是圆上或圆内到圆心距离相等的两个点,在圆上取一点D,求|PD| + |QD|的最小值 反演点定义:https://baike.baidu.com/item/反演点/5735267?fr=aladdin 做点P、Q的反演点P'、Q'

Coder__Yang的博客 878

hdu 6097 Mindis(多校联赛)

Mindis Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Special Judge Problem Description The center coordinate of the circle C is O, the coordinate of O i

江北绝尘 862

HDU 6097 Mindis(圆的反演)

传送门 题意: 有一个圆,圆心是(0,0),半径是r,有两个到圆心距离相等的点分布在圆上或圆内,问在圆上找一点使得这点到那两个点的距离和,输出最小的距离。 思路: 首先题目的规模达到了500000,在3s内跑完,如果用三分的话,精度达到1e-6,一个数据大约找50遍,这样复杂度就爆炸了。 最好的方法是一组数据由一个式子直接得出来,这样复杂度O(1),还可以跑完

protecteyesight的博客 408

HDU 6097 Mindis【计算几何】

题目来戳呀Problem DescriptionThe center coordinate of the circle C is O, the coordinate of O is (0,0) , and the radius is r. P and Q are two points not outside the circle, and PO = QO. You need to find a

卡西莫多 429

杭电多校第五次 HDU 6354(计算几何)

两端的弧长可以通过公式 求出。现在我们则需要求出两个圆心角即可。而我们发现,两个圆心角分别可以用余弦公式求出,其中大圆的圆心角的一半的余弦为,每个小圆的圆心角的余弦的一半为,继而我们即可将问题转化为一个解三角形的问题。 #include &amp;amp;lt;bits/stdc++.h&amp;amp;gt; #define maxn 100005 using namespace std; const double eps...

城南的花 337

HDU 6097 Mindis(计算几何)

原题链接Problem DescriptionThe center coordinate of the circle C is O, the coordinate of O is (0,0) , and the radius is r. P and Q are two points not outside the circle, and PO = QO. You need to find a p

ZhaoYi1222的博客 483

HDU 6097 Mindis

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097分别对P和Q做关于圆的反演点P1和Q1,以P和P1为例, OP/OD=OD/OP1=DP/DP1, 所以求出DP1就可以求出DP,同理,DQ也可以这样求出,而所求的DP+ DQ最小值就可以转化为求DP1+DQ1的最小值,其中D为圆上一点,又两点之间直线最短,如果P1Q1与圆有交点,则我们所求的最

Titanzyh的博客 626
上一篇: tyvj 4757 Cleaning 用最少的线段覆盖全区间 贪心 小优化
下一篇: poj 2566 Bound Found 尺取法 / lower_bound
kkkkahlua
博客等级 码龄12年 4粉丝 116原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值