最短路 水題 cogs 497 奶牛派對

2021-07-03 09:50:13 字數 1471 閱讀 5813

★☆   輸入檔案:party.in   輸出檔案:party.out   簡單對比

時間限制:1 s 記憶體限制:128 mb

【問題描述】

n頭牛要去參加一場在編號為x(1≤x≤n)的牛的農場舉行的派對(1≤n≤1000),有m(1≤m≤100000)條有向道路,每條路長ti(1≤ti≤100);每頭牛都必須參加完派對後回到家,每頭牛都會選擇最短路徑,求這n個牛的最短路徑(乙個來回)中最長的一條的長度。

輸入格式:

第一行:n,m,x;

第二--m+1行:ai,bi,ti,表示有一條從ai到bi的路,長度為ti.

輸出格式:

最長最短路的長度。
樣例輸入輸出:

party.in

4 8 2

1 2 4

1 3 2

1 4 7

2 1 1

2 3 5

3 1 2

3 4 4

4 2 3

party.out

10
題解:

既然是從許多點到乙個點,我們可以看成是從乙個點到許多點,然後跑spfa即可,因為是來回,所以正著建一遍邊,在反著建一遍就好了。

code:

#include

#include

#include

#include

#include

#include

#define n 1010

#define m 1000100

using namespace std;

struct edgeedge[m];

struct ee[m];

int n,m,s,num=0,ans=0,head[n],dis[2][n],q[m];

bool vis[n];

int in()

void add(int u,int v,int d)

void spfa(int p)}}

}int main()

spfa(0);

num=0; memset(head,0,sizeof(head));

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

add(e[i].v,e[i].u,e[i].d);

spfa(1);

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

ans=max(ans,dis[0][i]+dis[1][i]);

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

return

0;}

POJ3268最短路水題

題意大概是有n個農場n頭牛,要去x農場的牛。去和返回都要走最短路,問耗費時間最長的那條路是多少。首先想到就的就是floyd演算法果然tle了。先附上tle的 include include include include using namespace std const int maxn 1000...

275 水題 最短路徑問題

最短路徑問題 非常水的一道題啦,但是對於相隔九個月重新出山第一天的我非常不友好,各種小錯誤容易犯啊!一遍floyd加上簡單的座標求距離公式。幾乎是模板題 題目 平面上有n個點,每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路...

hdu 2544 最短路(水題,dijkstra)

小記 本想用dp來做,但是不曉得如何處理環,於是改用dijkstra了。如果想看鄰接表解決的可以參看我的這篇 spfa 鄰接表 小記 裸dijkstra就可以過 include include include include include include include include inclu...