hdu 2073 計算距離

2021-06-23 04:21:33 字數 1186 閱讀 7366

problem 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

利用打表進行計算,以免超時

注意輸入的兩個點不一定是一前一後的,如果不是需要先進行交換記得加標頭檔案#includeusing namespace std;

a[1]=1+sqrt2;a[2]=1+sqrt2+sqrt5;a[2]=1+sqrt2+sqrt5+sqrt8;

sum+=sqrt(2*y1*y1);

sum-=sqrt(2*y2*y2);

sum+=a[x2+y2]-a[x1+y1];

a[i]=a[i-1]+sqrt(i*i+(i-1)*(i-1))+sqrt(2*i*i);

#include

#include

#include

#include

using namespace std;

int main()

sum+=sqrt(2*y1*y1);

sum-=sqrt(2*y2*y2);

sum+=a[x2+y2]-a[x1+y1];

printf("%.3lf\n",sum);      

}return 0;

}

hdu2073 模擬規律

規律 按照題目意思來看我們可以把整個過程拆分成兩個操作不斷迴圈的步奏 每個迴圈包含兩種操作向上和向下 該次迴圈內範圍大概是乙個正方形的樣子 即x,y屬於0 a 1 向上的方向移動 由於上個迴圈中 我們在乙個正方形內 所以進入下乙個迴圈的時候我們的橫座標會 1 我們可以根據x的記錄來 1 則先y x ...

HDU2073 無限的路

純幾何題。題目是讓求兩點之間的折線距離,很自然的就可以想到分別求出兩點到原點的距離,然後相減即可,本題沒說兩點的先後,再多一步取絕對值就ok了。求一點到原點之間的距離,可以把折線分成兩部分,很容易可以看出,一部分是sqrt 2 的整數倍,另一部分寫幾個就很容易看出,依次是sqrt 1 1 2 2 s...

hdu2073 無限的路

這道題吧我覺得還是有點思維量的。思路 1.我們要求的是兩點之間的距離,可以轉化為點到原點的距離,然後相減。2.首先看這張圖分為兩種線 一種是有點的線 如 0,1 與 1,0 的線 0,2 與 2,0 的線 一種是沒有點的線 如 0,1 與 0,0 的線 0,2 與 1,0 的線,0,3 與 2,0 ...