首页 > 代码库 > UVA 11314 - Hardly Hard(数论)
UVA 11314 - Hardly Hard(数论)
题目链接:11314 - Hardly Hard
题意:给定A,B两点,求Y轴上一点C和X轴上一点D,使得该四边形周长最小。
思路:B以Y轴做对称点,A以X轴做对称点,然后两点相连就是其他三边的周长,因为两点间线段最短,然后再加上AB长度即可
代码:
#include <stdio.h> #include <string.h> #include <math.h> int t; struct Point { double x, y; Point() {} Point(double _x, double _y) { x = _x; y = _y; } void scan() { scanf("%lf%lf", &x, &y); } } a, b, c, d; double dis(Point a, Point b) { double x = a.x - b.x; double y = a.y - b.y; return sqrt(x * x + y * y); } int main() { scanf("%d", &t); while (t--) { a.scan(); b.scan(); c = Point(-b.x, b.y); d = Point(a.x, -a.y); printf("%.3lf\n", dis(a, b) + dis(c, d)); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。