HDOJ/HDU 2547 无剑无我(两点间的距离)

Problem Description

北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯。时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从。

值此危急存亡之秋,在一个与世隔绝的地方—MCA山上一位江湖人称<英雄哪里出来>的人正在为抗击辽贼研究剑法,终于于一雷电交加之夜精确计算出了荡剑回锋的剑气伤害公式。

定义 f(x, y, m, n) = sqrt(x*x + y*y + m*m + n*n - 2*m*x - 2*n*y);

hint : sqrt表示开方,即sqrt(4) = 2; sqrt(16) = 4;

(其中x,y为位置变量,m,n为属性常量)

剑气伤害 = f(x, y, a, b) + f(x, y, c, d);

剑气威力巨大无比,实难控制,现在他想知道剑气伤害的最小伤害值。

Input

首先输入一个t,表示有t组数据,跟着t行:

输入四个实数a,b,c,d均小于等于100

Output

输出剑气的最小伤害值M,保留小数点后一位

(可以使用.1lf)

Sample Input

2

0 0 3 4

4 0 0 3

Sample Output

5.0

5.0

一个数学求2点间的距离问题;

sqrt(x*x + y*y + m*m + n*n - 2*m*x - 2*n*y)即

sqrt((x-m)(x-m)+(y-n)(y-n));

这个是点(x,y)到(m,n)的距离~

总的来说,就是让我们求一个点p到p1(a,b) ,p2(b,c)这2个点的最短距离~

显而易见,p点在p1和p2的连线上时,距离最短。

也就是转过来求p1到p2的距离。

import java.util.Scanner;

/**
 *
 * @author 陈浩翔
 *
 * 2016-5-16
 */
public class Main{

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t =sc.nextInt()
                ;
        while(t-->0){
            double a = sc.nextDouble();
            double b = sc.nextDouble();
            double c = sc.nextDouble();
            double d = sc.nextDouble();

            double m = Math.sqrt((a-c)*(a-c)+(b-d)*(b-d));
            System.out.printf("%.1f",m);
            System.out.println();

        }

    }

}
时间: 2024-10-13 06:45:49

HDOJ/HDU 2547 无剑无我(两点间的距离)的相关文章

HDU 2547 无剑无我(数学)

#include<cstdio> #include<iostream> #include<cmath> int main() { double a,b,c,d,m; int t; scanf("%d",&t); while(t--) { scanf("%lf%lf%lf%lf",&a,&b,&c,&d); m=sqrt((a-c)*(a-c)+(b-d)*(b-d)); printf(&qu

acm hdu p2547 无剑无我{水水水}

无剑无我 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4112    Accepted Submission(s): 2638 Problem Description 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从. 值此危急存亡之秋

HDU ACM 2547无剑无我

分析: f(x,y,a,b)+f(x,y,c,d)=sqrt(x^2+y^2+a^2+b^2-2*a*x-2*b*y)+sqrt(x^2+y^2+c^2+d^2-2*c*x-2*d*y) =sqrt((x-a)^2+(y-b)^2)+sqrt((x-c)^2+(y-d)^2)也就是C点分别到A点B点的距离之和,因此要使最小,则C点应在AB线段上,所以最小值等于AB之间的距离. #include<iostream> #include<cmath> using namespace st

HDOJ 2001 计算两点间的距离

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 94573    Accepted Submission(s): 36296 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y

HDU2547 无剑无我【水题】

无剑无我 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3811    Accepted Submission(s): 2429 Problem Description 北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从. 值此危急存亡之秋

HDU 2001 计算两点间的距离

Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开. Output 对于每组输入数据,输出一行,结果保留两位小数. Sample Input 0 0 0 1 0 1 1 0 Sample Output 1.00 1.41 题意:输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. #include <stdio.h>

计算两点间的距离

计算两点间的距离 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 208295    Accepted Submission(s): 72641 Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y

计算两点间的距离-hdu2001

Problem Description 输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. Input 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开. Output 对于每组输入数据,输出一行,结果保留两位小数. Sample Input 0 0 0 1 0 1 1 0 Sample Output 1.00 1.41 1 #include<stdio.h> 2 #include<math.h> 3 int main

ios根据gps坐标来计算两点间的距离

//ios根据gps坐标来计算两点间的距离 //x1,y1 点1的坐标 x2,y2点2的坐标 -(double) gps2m:(double)x1 _y1:(double)y1 _x2:(double)x2 _y2:(double)y2{ double radLat1 = (x1 * 3.1416 / 180.0); double radLat2 = (x2 * 3.1416 / 180.0); double a = radLat1 - radLat2; double b = (y1 - y2)