首页 > ACM题库 > HDU-杭电 > hdu 2547 无剑无我[解题报告]C++
2014
02-10

hdu 2547 无剑无我[解题报告]C++

无剑无我

问题描述 :

北宋末年,奸臣当道,宦官掌权,外侮日亟,辽军再犯。时下战火连连,烽烟四起,哀鸿遍野,民不聊生,又有众多能人异士群起而反,天下志士云集响应,景粮影从。
值此危急存亡之秋,在一个与世隔绝的地方—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);
剑气威力巨大无比,实难控制,现在他想知道剑气伤害的最小伤害值。

输入:

首先输入一个t,表示有t组数据,跟着t行:
输入四个实数a,b,c,d均小于等于100

输出:

首先输入一个t,表示有t组数据,跟着t行:
输入四个实数a,b,c,d均小于等于100

样例输入:

2
0 0 3 4
4 0 0 3

样例输出:

5.0
5.0

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2547

题意:中文。

mark:其实就是求两点间距离,水。注意输入数据是实数。

代码:

# include <stdio.h>
# include <math.h>


int main ()
{
    int T ;
    double a, b, c, d ;
    scanf ("%d", &T) ;
    while (T--)
    {
        scanf ("%lf%lf%lf%lf", &a, &b, &c, &d) ;
        printf ("%.1lf\n", sqrt((a-c)*(a-c)+(b-d)*(b-d))) ;
    }
    return 0 ;
}

解题转自:http://www.cnblogs.com/lzsz1212/archive/2012/02/19/2357865.html