PC的機器裝置 dijkstra最短路徑

2021-09-24 05:14:27 字數 1742 閱讀 3499

henuacm團隊的pc同學設計出一種節能的機器裝置。它的內部結構是由 n 個齒輪組成。整個機器裝置有 乙個驅動齒輪,當啟動它時,它立即按 10,000 圈/小時轉速順時針轉動,然後它又帶動與它相切 的齒輪反方向,即逆時針轉動。齒輪之間互相作用,每個齒輪都可能驅動著多個齒輪,最終帶動 乙個工作齒輪完成相應的任務。 在這套裝置中,記錄了每個齒輪的圓心座標和齒輪半徑。已知驅動齒輪位於(0,0),最終的 工作齒輪位於(xt, yt)。 但是whr想知道傳動序列中所有齒輪的轉速。所謂傳動序列,即能量由驅動齒輪傳送,最 後到達工作齒輪的過程中用到的所有齒輪。能量傳送過程是,在乙個半徑為 r,轉速為 s 圈/每小 時的齒輪的帶動下,與它相切的半徑為 r』的齒輪的轉速為-s*r/r『 轉/小時。負號的意思是, 表 示按反方向轉動。 

已知,機器裝置中除了驅動齒輪以外,所有齒輪都可能被另外某個齒輪帶動,並且不會出現 2 個不同的齒輪帶動同乙個齒輪的情況。 你的任務是計算整個傳動序列中所有齒輪的能量之和。即所有齒輪轉速的絕對值之和。

第一行: t 表示以下有 t 組測試資料(1≤t ≤8)

對每組測試資料: 第 1 行:n xt yt (2≤n ≤1100)

接下來有 n 行, xi yi ri 表示 n 個齒輪的座標和半徑 i=1,2,….,n ( -5000 ≤xi ,yi ≤ 5000 3 ≤ ri ≤ 1000 )

每組測試資料,輸出佔一行,即所有齒輪轉速的絕對值之和 在double範圍內,輸出整數部分

input

1

4 32 54

0 30 20

0 0 10

32 54 20

-40 30 20

output

20000
1、深搜

2、建下圖最短路 dijstra跑一下

#define ll long long 

//#define max(a,b) (a)>(b)?(a):(b)

//#define min(a,b) (a)

#define clean(a,b) memset(a,b,sizeof(a))// 水印

//std::ios::sync_with_stdio(false);

// register

const int maxn=1110;

const int inf32=0x3f3f3f3f;

const ll inf64=0x3f3f3f3f3f3f3f3f;

const int mod=998244353;

const double pi=acos(-1.0);

double x[maxn],y[maxn],r[maxn];

int mp[maxn][maxn];

int vis[maxn],dis[maxn];

int pre[maxn];

double smalr=9999999,bigr=9999999;

int n,si,ti;

void intt()

void djstr()

} }}int main()

for(int i=1;i<=n;++i)

}djstr();//已知最短路

int res=ti;

double ans=0;

while(res!=-1)

ans=10000.0*ans;

printf("%d\n",int(ans));

}}

機器裝置(dfs)

時間限制 難度 2 描述 alpha 公司設計出一種節能的機器裝置。它的內部結構是由 n 個齒輪組成。整個機器裝置有 乙個驅動齒輪,當啟動它時,它立即按 10,000 圈 小時轉速順時針轉動,然後它又帶動與它相切 的齒輪反方向,即逆時針轉動。齒輪之間互相作用,每個齒輪都可能驅動著多個齒輪,最終帶動 ...

機器裝置(深搜)

機器裝置 時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述alpha 公司設計出一種節能的機器裝置。它的內部結構是由 n 個齒輪組成。整個機器裝置有 乙個驅動齒輪,當啟動它時,它立即按 10,000 圈 小時轉速順時針轉動,然後它又帶動與它相切 的齒輪反方向,即逆時針轉動。齒輪...

zzuli1927 機器裝置

alpha 公司設計出一種節能的機器裝置。它的內部結構是由 n 個齒輪組成。整個機器裝置有 乙個驅動齒輪,當啟動它時,它立即按 10,000 圈 小時轉速順時針轉動,然後它又帶動與它相切 的齒輪反方向,即逆時針轉動。齒輪之間互相作用,每個齒輪都可能驅動著多個齒輪,最終帶動 乙個工作齒輪完成相應的任務...