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-07-31 13:55:30

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

HDOJ 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 import java.util.*; class Main{ public static void main(

flex中Away3D计算两点间的距离、两点间的中点例子

在Away3D开发中,有时需要计算两个点(Vector3D )之间的距离或者中点.假设有如下v1.v2两个坐标点. 1,两点间的距离(线段长度) var v1:Vector3D = new Vector3D(0,0,0); var v2:Vector3D = new Vector3D(200,200,200); var lenght:Number =  v1.subtract(v2).length;  //346.41016151377545 2,两点间的中点(线段中点) var v1:Vect

请牛人指点,如何以最优的算法,对两点间的距离进行排序。

问题描述 业务要求:根据APP当前位置,取得距离最近的10条记录,再次刷新时,取得后10条最近的数据...我考虑的思路:■思路1:查询出数据库中所有的数据,根据两点的经度和纬度计算得到距离.再按照距离排序.缺点是,如果数据库有100万条数据,每次取出来,效率会很慢.■思路2:SQL查询语句中,取得两点间,经度和纬度差值的绝对值,以从小到大排序,取得前10条即可.这样查出来的数据量就比较小了.正确的思路到底是什么呢,不知道别人的APP距离排序怎么个算法.★Java算法是什么呢??★APP客户端传递

我是名新手,想请问一下关于“无剑无我”的一道编程题的答案,谢谢

问题描述 ProblemDescription:北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯.时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从.值此危急存亡之秋,在一个与世隔绝的地方---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

初学者遭遇离奇错误——求两点间的距离(C++)

有学生向我求助,他编了一个程序,设计一个"点"类,求出两点距离的程序.程序看着没有问题,却出了一大堆的错误.程序如下: #include <iostream> #include <math.h> using namespace std; class point { public: double x; double y; }; double distance(point p1,point p2); int main() { point p1= {3,5},p2=

Openlayers3 计算地图上任意两点间的距离

对应的openlayers的版本为3.7. 主要用的接口是ol.Sphere.haversineDistance([x1,y1],[x2,y2]): 4326坐标系中计算两点距离的方式为: var wgs84Sphere = new ol.Sphere(6378137); wgs84Sphere.haversineDistance(C1,C2); 示例为: var wgs84Sphere = new ol.Sphere(6378137); wgs84Sphere.haversineDistanc

根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为: 复制代码 代码如下: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(

利用JS实现的根据经纬度计算地球上两点之间的距离

最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为:     var EARTH_RADIUS = 6378137.0;    //单位M    var PI = Math.PI;          function getRad(d){         retur

HDU 4305 无向连通图的生成树个数 矩阵行列式取模

题意:给出n个人和他们的坐标,闪电随机劈到一个机器人,在他周围的与他距离不超过r的机器人会被传播,但是三点共线的情况只能传染最近的那个,传染后的有多少种情况. 也就是无相连通图的生成树的个数. 对于一个无向连通图来说,它可能有很多生成树,那么如何求得它的生成树个数呢? 首先给出一个非常一般的计算方法 -- 矩阵行列式法 对于任何一个顶点数为n的无向连通图,我们列出一个矩阵. 矩阵的规则是:1.在主对角线上的元素为此节点的度数 2.对于其他位置上的元素Matrix(i,j) { i != j },