题目大意:给出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;
}