题目大意:给出A,B两点,然后分别在y轴和x轴找一个D点和C点,使得A,B,C和D组成的四边形的周长最小。
解题思路:两点之间直线最短,将A‘为A关于y轴的对称点,B‘为B关于x轴的对称点,连接A‘B‘即为另外三条边的最短距离,然后AB的距离又是固定的。
#include <cstdio> #include <cstring> #include <cmath> double xa, ya, xb, yb; double distant(double x, double y) { return sqrt(x*x + y*y); } int main () { int cas; scanf("%d", &cas); while (cas--) { scanf("%lf%lf%lf%lf", &xa, &ya, &xb, &yb); printf("%.3lf\n", distant(-xa - xb, ya + yb) + distant(xa-xb, ya-yb)); } return 0; }
uva 11314 - Hardly Hard(坐标系问题),码迷,mamicode.com
时间: 2024-10-21 14:54:04