POJ3268最短路水題

2021-07-11 15:37:38 字數 1159 閱讀 2511

題意大概是有n個農場n頭牛,要去x農場的牛。去和返回都要走最短路,問耗費時間最長的那條路是多少。

首先想到就的就是floyd演算法果然tle了。

先附上tle的**

#include

#include

#include

#include

using

namespace

std;

const

int maxn=1000+10;

const

int inf=1e9;

int e[maxn][maxn];

int n,m,x;//表示n個農場m條路目標x農場。

void floyd()

floyd();

int ans=0;

for(int i=0;iprintf("%d",ans);

return

0;}

接下來仔細的想了下,這題用dij也可以做。

附上dij的。

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef pair pii;代表當前點,pii.first代表最短距離。

const

int maxn=1000+10;

const

int inf=1e9;

struct edge

edge(int to,int cost): to(to),cost(cost){}

};vector

g[maxn];

int d[maxn][maxn];//最短距離

int n,e;

//優先佇列加速的dij

void dij(int s)}}

}int main()

for(int i=0;iint ans=-inf;

for(int i=0;iif(i!=x) ans=max(ans,d[i][x]+d[x][i]);

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

}

來回最短路POJ3268

這個題得主要考點在於給你的圖是去了再回來得有向圖,如何模組化解決呢就是轉變圖的方向,我們根據初始得放心求出每個點到x得最短路,然後轉變所有路得方向再求出所有點到x得最短路,最後一相加就是最後的來回了 實現得時候我用到了陣列指標,感覺非常得方便 include include include defi...

寒假 POJ 3268(最短路)

題目大意 給出n個點和m條邊,接著是m條邊,代表從牛a到牛b需要花費c時間,現在所有牛要到牛x那裡去參加聚會,並且所有牛參加聚會後還要回來,給你牛x,除了牛x之外的牛,他們都有乙個參加聚會並且回來的最短時間,從這些最短時間裡找出乙個最大值輸出 include using namespace std ...

poj 3268 最短路 dijkstra演算法

題目鏈結 有編號為1 n的牛,它們之間存在一些單向的路徑。給定一頭牛的編號,其他牛要去拜訪它並且拜訪完之後要返回自己原來的位置,求這些牛中所花的最長的來回時間是多少。每頭牛返回的最短時間很簡單就可以算出來,這相當於從目標牛為起點求單源最短路徑。但每頭牛出發到目標牛的最短時間無法直接算出來,稍微轉換一...