当前位置:网站首页>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;
}
边栏推荐
- I want to inquire about how to ensure data consistency when a MySQL transaction updates multiple tables?
- Super wow fast row, you are worth learning!
- Ctfshow web entry information collection
- What are the domestic formal futures company platforms in 2022? How about founder metaphase? Is it safe and reliable?
- Creation and use of thymeleaf template
- Ctfshow web entry explosion
- Thymeleaf uses background custom tool classes to process text
- Bubble sort, insert sort
- MySQL----函数
- Ctfshow web entry command execution
猜你喜欢

lv_font_conv离线转换

计算中间件 Apache Linkis参数解读

1330:【例8.3】最少步数

SQL Server learning notes

lvgl 显示图片示例

Behind the ultra clear image quality of NBA Live Broadcast: an in-depth interpretation of Alibaba cloud video cloud "narrowband HD 2.0" technology

Huawei Hubble incarnation hard technology IPO harvester

CSRF, XSS science popularization and defense

Ecotone technology has passed ISO27001 and iso21434 safety management system certification

Common PHP interview questions (1) (written PHP interview questions)
随机推荐
当代人的水焦虑:好水究竟在哪里?
Mongdb learning notes
lv_font_conv离线转换
30岁汇源,要换新主人了
Mysql---- function
【jvm】运算指令
社区团购撤城“后遗症”
可转债打新在哪里操作开户是更安全可靠的呢
Magic methods and usage in PHP (PHP interview theory questions)
百亿按摩仪蓝海,难出巨头
机器学习框架简述
1330: [example 8.3] minimum steps
Bugku cyberpunk
sql server学习笔记
数学建模之层次分析法(含MATLAB代码)
Easyocr character recognition
JS topic - console log()
Severlet learning foundation
Fr exercise topic --- comprehensive question
漫画:优秀的程序员具备哪些属性?