码迷,mamicode.com
首页 > 其他好文 > 详细

HDU-2073 无限的路

时间:2017-06-17 01:02:37      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:小数点   sqrt   div   整数   bsp   double   image   图形   acm   

Description

甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形:

技术分享



甜甜的好朋友蜜蜜发现上面的图还是有点规则的,于是他问甜甜:在你画的图中,我给你两个点,请你算一算连接两点的折线长度(即沿折线走的路线长度)吧。

 

Input

第一个数是正整数N(≤100)。代表数据的组数。
每组数据由四个非负整数组成x1,y1,x2,y2;所有的数都不会大于100。

 

Output

对于每组数据,输出两点(x1,y1),(x2,y2)之间的折线距离。注意输出结果精确到小数点后3位。

 

Sample Input

5

0 0 0 1

0 0 1 0

2 3 3 1

99 99 9 9

5 5 5 5

 

Sample Output

1.000

2.414

10.646

54985.047

0.000


  找规律,

#include <iostream>
#include <cmath>
using namespace std;

int main(void)
{
    int x1, y1, x2, y2, n, t;
    
    cin >> n;
    
    while(n--)
    {
        double sum = 0;
        
        cin >> x1 >> y1 >> x2 >> y2;
        
        if(x1+y1 > x2+y2)
        {
            t = x1; x1 = x2; x2 = t;
            t = y1; y1 = y2; y2 = t;
            
        }
        
        if(x1==x2 && y1==y2)
        {
            cout << "0.000" << endl;
            continue;
            
        }
        else
        {
            for(int i = x1+y1+1; i <= x2+y2; i++)
            {
                sum += i*sqrt(2.0)+sqrt(i*i+(i-1)*(i-1));
                
                
            }
            
            sum -= (y2-y1)*sqrt(2.0);
            
        }
        
        printf("%.3lf\n", sum);
        
    }
    
    return 0;
}

 

HDU-2073 无限的路

标签:小数点   sqrt   div   整数   bsp   double   image   图形   acm   

原文地址:http://www.cnblogs.com/limyel/p/7030395.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!