空間航行 warp

2021-09-26 09:06:39 字數 1296 閱讀 9995

description

你是一艘戰列巡洋艦的引擎操作人員,這艘船的船員在空間中偵測到了一些無法辨識的異常訊號。你的指揮官給你下達了命令,讓你制定航線,駕駛戰列巡洋艦到達那裡。

船上老舊的曲速引擎的速度是0.1au/s。然而,在太空中分布著許多殖民星域,這些星域可以被看成乙個球。在星域的內部,你可以在任何地方任意次跳躍到星域內部的任意乙個點,不花費任何時間。

你希望算出到達終點的最短時間。

input

輸入包含多組測試資料。

對於每一組資料,第一行包含乙個正整數n,表示殖民星域的數量。

接下來n 行,第i 行包含四個整數xi,yi,zi,ri,表示第i個星域的中心座標為(xi, yi,zi),星域的半徑是ri。

接下來兩行,第一行包含值xa,ya,za,告訴你當前座標為(xa, ya,za)。

第二行包含值xo,yo,zo,告訴你目的地座標為(xo, yo,zo)。

輸入以一行單獨的-1 結尾。所有座標的單位都是天文單位(au)。

output

對於每一組輸入資料,輸出一行表示從目前的位置到達指定目的地的最短時間,取整到最近整數。輸入保證取整是明確的。

sample input

120 20 20 1

0 0 0

0 0 10

5 0 0 4

0 0 0

10 0 0

-1sample output

100data constraint

每個輸入檔案至多包含10 個測試資料。

對於10% 的資料,n = 0。

對於30% 的資料,0<=n<=10。

對於100% 的資料,0<=n<=100,所有座標的絕對值<=10000 ,半徑r<=10000。

你可以認為,你所在的星區的大小為無限大。..

....

.分析

易知,在兩個球的之間航行的時間等於兩個球心之間的距離減去兩個球的半徑。

將每個球的球心當作點建圖,然後執行最短路演算法即可。..

....

程式:

#include#include#include#includeusing namespace std;

int n,x[200],y[200],z[200],r[200];

double bz[110][110];

int main()

fclose(stdin);

fclose(stdout);

return 0;

}

cuda程式設計 warp

cuda程式設計中,warp是排程和執行的基本單元,每個warp包含32個threads。軟體邏輯上,程式的所用的threads是可以同時並行的。但是從硬體的角度上來說,實際上並不是所有 的thread都能夠同一時刻執行。例如 乙個block上有128個thread,那麼可以分為warp0 warp...

停泊已久,繼續航行

當然,計算機知識學習也就沒有進行,有好多的東西沒有總結發表就過去了。現在要撿起來一些感覺不是很重要的東西,為了工作,更為了興趣。現在從事的職業是教育行業,有好多朋友說 這個行業很適合你,天生就很搭。確實,在這個行業裡面,我感覺很得心應手。有好多的東西我能快速的反應到。但是,有時候我在想我要是繼續在i...

python裝飾器及warp的作用

首先裝飾器是python乙個很強大的功能,也是動態程式設計的乙個特點。首先我們知道,在python中乙個函式可以作為引數傳給另外乙個函式 def hi return hi yasoob def dosomethingbeforehi func print i am doing some boring...