当前位置:网站首页>D-snow halo solution
D-snow halo solution
2022-07-05 15:25:00 【wch(】
D- Snow halo problem solution
label : Analytic geometry
subject
Ideas
The topic is actually relatively simple , Using high school mathematics can do , Unfortunately, I didn't finish reading the title during the competition
But because of IQ offline just now wa It took several rounds to pass
The problem is the shortest distance from a point to a line segment , It needs to be discussed on a case by case basis
First, determine the triangle formed by line segments and points Whether there is obtuse angle on one side of the line segment , You can use vectors to judge .
If a line segment is an edge, there is no obtuse angle Obviously, the shortest distance is the distance between the point and the straight line ,
Available formulas Calculation
If there is obtuse angle Then the shortest distance is the smaller one from the point to both ends of the line
In addition, pay attention not to use long long Otherwise, it will be out of range .
Code implementation
#include <algorithm>
#include <math.h>
#include <stdio.h>
using namespace std;
int main() {
double ans = 999999999;
double x1, y1, x2, y2;
int n;
cin >> n;
cin >> x1 >> y1;
cin >> x2 >> y2;
x1 -= x2;
y1 -= y2;// Make Xiaoguo at the origin relative to Xiaohong running , Convenient formula calculation
while (n--) {
cin >> x2 >> y2;
x2 += x1;
y2 += y1;
double a, c, d1, d2;
d2 = sqrt(min(x1 * x1 + y1 * y1, x2 * x2 + y2 * y2));
if ((x1 * (x2 - x1) + y1 * (y2 - y1) >= 0)||(x2*(x1-x2)+y2*(y1-y2)>=0)) ans = min(ans, d2);
else {
if (x1 - x2 != 0) {
a = (y1 - y2) / (x1 - x2);
c = y1 - a * x1;// A straight line -ax+y-c=0;
d1 = abs(c) / sqrt(a * a + 1);
ans = min(ans, d1);
}
else ans = min(ans, abs(x1));
}
x1 = x2;
y1 = y2;
}
printf("%0.12lf", ans);
return 0;
}
边栏推荐
猜你喜欢
Redis' transaction mechanism
P6183 [USACO10MAR] The Rock Game S
可视化任务编排&拖拉拽 | Scaleph 基于 Apache SeaTunnel的数据集成
P1451 求细胞数量/1329:【例8.2】细胞
JS knowledge points-01
Bugku's steganography
How to paste the contents copied by the computer into mobaxterm? How to copy and paste
Behind the ultra clear image quality of NBA Live Broadcast: an in-depth interpretation of Alibaba cloud video cloud "narrowband HD 2.0" technology
MySQL之CRUD
Bugku easy_ nbt
随机推荐
Reasons and solutions for redis cache penetration and cache avalanche
1330: [example 8.3] minimum steps
Ionic Cordova project modification plug-in
可转债打新在哪里操作开户是更安全可靠的呢
Bugku's steganography
The difference between abstract classes and interfaces in PHP (PHP interview theory question)
Your childhood happiness was contracted by it
亿咖通科技通过ISO27001与ISO21434安全管理体系认证
I spring web upload
数学建模之层次分析法(含MATLAB代码)
P1451 求细胞数量/1329:【例8.2】细胞
Want to ask the big guy, is there any synchronization from Tencent cloud Mysql to other places? Binlog saved by Tencent cloud MySQL on cos
Does maxcompute have SQL that can query the current storage capacity (KB) of the table?
Garbage collection mechanism of PHP (theoretical questions of PHP interview)
Can gbase 8A view the location of SQL statement history?
maxcompute有没有能查询 表当前存储容量的大小(kb) 的sql?
B站做短视频,学抖音死,学YouTube生?
Bubble sort, insert sort
Stop B makes short videos, learns Tiktok to die, learns YouTube to live?
Bugku telnet