rqnoj86 智捅馬蜂窩

2022-06-03 21:42:11 字數 1592 閱讀 4178

題目描述

背景為了統計小球的方案數,平平已經累壞了。於是,他摘掉了他那800度的眼鏡,躺在樹下休息。

後來,平平發現樹上有乙個特別不一樣的水果,又累又餓的平平打算去把它摘下來。

題目描述

現在,將大樹以乙個n個節點的無向圖的形式給出,每個節點用座標(xi,yi)來表示表示,平平要從第乙個點爬到第n個點,除了從乙個節點爬向另乙個相鄰的節點以外,他還有一種移動方法,就是從乙個節點跳下,到達正下方的某個節點(之間可隔著若干個點和邊),即當xj=xi and yi資料規模

對於100%資料,1<=n<=100,1<=v<=10,0<=x,y<=100.

建議使用extended(pas)或double(c and c++)計算,我們對於精度造成的誤差將不予重測。

輸入格式

兩個整數n,v,n表示節點個數,v表示平平爬樹的速度。

接下來n行,每行包含3個整數x,y,f,x,y是這個點的座標,f是他的父節點(f一定小於這個點的標號,第一行的f為0)。

注意:兩節點間距離按歐幾里德距離計算 dis = sqrt( ( x1 – x2 ) 2+ ( y1 – y2 )2 )

輸出格式

輸出僅包括一行,從1到n所用的最少所需時間t,保留兩位小數。

樣例輸入

9 15 0 0

5 5 1

6 5 2

7 6 2

6 9 2

3 6 2

4 5 2

3 2 7

7 2 3

樣例輸出

8.13

暴力+spfa 注意是無向圖

//serene

#include#include#include#include#include#include#includeusing namespace std;

const int maxn=100+10;

double n,v;

struct nodenode[maxn];

int fir[maxn],nxt[maxn*maxn],to[maxn*maxn],e=0;

double val[maxn*maxn];

void add(int x,int y,double z)

bool cmp(const node& a,const node& b)

double ds(int x,int y)

double ff(int x,int y)

double dis[maxn];

int zz[maxn];

bool vis[maxn];

void spfa(int st)

} s++;vis[x]=0; }}

int main()

sort(node+1,node+(int)n+1,cmp);

for(int i=1;i<=n;++i) for(int j=i+1;j<=n&&node[j].x==node[i].x;++j)

add(node[i].pos,node[j].pos,ff(i,j));

spfa(1);

printf("%.2lf",dis[(int)n]);

return 0;

}

RQNOJ86 智捅馬蜂窩 最短路

乙個座標系上有n nn個點n 1 n 1n 1條邊,有兩種移動方式 經過一條邊從乙個點到達另乙個點,耗時為這條邊長度 v div v v從乙個點垂直跳下到達正下方的另乙個點。耗時為 y j yi 2 g sqrt yj yi 2 g 注意 g gg取10 1010 求從點1 11到點n nn的最小時...

RQNOJ 篝火晚會

題目描述 佳佳剛進高中,在軍訓的時候,由於佳佳吃苦耐勞,很快得到了教官的賞識,成為了 小教官 在軍訓結束的那天晚上,佳佳被命令組織同學們進行篝火晚會。一共有n個同學,編號從1到n。一開始,同學們按照1,2,n的順序坐成一圈,而實際上每個人都有兩個最希望相鄰的同學。如何下命令調整同學的次序,形成新的乙...

其他 RQNOJ 排考場

期中考之前,總要排一下試場。張校長為此心煩 每個試場擁有的桌椅數不同。為了排試場,不免有些桌子要被移到別的試場去。為了減少移動量,張校長決定再開m個試場 m盡量要小,這是人之常情 將每個試場多餘的桌椅放入新試場內。由於教育局規定 每個試場的桌椅數必須相同。張校長犯難了,於是他找到學noip的你,希望...