聖誕島的旅行

2021-06-10 21:12:34 字數 1565 閱讀 5679

problem

angel最近無聊,去了聖誕島(cx *^_^*),他喜歡無目的的亂逛,當然,他不會輕易地回頭。angel想去廣場,那麼,他什麼時候才能到呢?你已經得到了cx的地圖,地圖上有n(n<= 100)個交叉路口,交叉路口之間有馬路相連線(不超過1000條馬路)。因為cx的人遵循奇怪的規則,道路都是單向的,不同的道路之間有一定的距離,我們假設angel所在的地點為點1,廣場所在點為n。假設angel走一單位距離需要一單位時間。問angel最早和最遲什麼時候到達廣場?

input

本題有多組資料,第一行n,m,m是邊的數量以後m行,每行3個整數x, y, weight,代表一條從x城市到y城市,長度為wweight的邊。

output

每組資料,第一行是最少時間,第二行是最遲時間,要是可憐的angel可能永遠到不了廣場,輸出一行never。

sample input

5 51 2 1

1 4 10

2 3 1

3 4 1

4 5 1

sample output411

#include#include#define yes 1

#define no 0

#define ok 1

#define error 0

#define max 500

#define max_vex 100

#define status int

typedef struct arccell

arccell,adjmatrix[max_vex][max_vex];

typedef struct graph

graph;

status creat_graph(graph &g);

int min_time(graph g,int v,int w);//最短時間,dijkstra演算法

int max_time(graph g,int v,int w);//最長時間,反向使用dijkstra演算法,求得最長路徑

int main()

system("pause");

return 0;

}status creat_graph(graph &g)

for(i=0;i<=g.vexnum;i++)//初始化矩陣

for(j=0;j<=g.vexnum;j++)

g.adj[i][j].time=max;

for(i=0;i0&&w>0)

g.adj[v][w].time=k;

else//判斷資料的有效性

}return ok;

}int min_time(graph g,int v,int w)//最短時間,dijkstra演算法

selected[v]=yes;

for(i=1;i<=g.vexnum;i++)

{ min=max;

for(j=1;j<=g.vexnum;j++)//遍歷lowpathcost找到當前最短路徑

if(lowpathcost[j]min+g.adj[minvex][j].time&&min+g.adj[minvex][j].timemax&&highpathcost[j]

聖誕島的旅行

problem angel最近無聊,去了聖誕島,他喜歡無目的的亂逛,當然,他不會輕易地回頭。angel想去廣場,那麼,他什麼時候才能到呢?你已經得到了cx的地圖,地圖上有n n 100 個交叉路口,交叉路口之間有馬路相連線 不超過1000條馬路 因為cx的人遵循奇怪的規則,道路都是單向的,不同的道路...

聖誕島的旅行

problem angel最近無聊,去了聖誕島 cx 他喜歡無目的的亂逛,當然,他不會輕易地回頭。angel想去廣場,那麼,他什麼時候才能到呢?你已經得到了cx的地圖,地圖上有n n 100 個交叉路口,交叉路口之間有馬路相連線 不超過1000條馬路 因為cx的人遵循奇怪的規則,道路都是單向的,不同...

1225 島的周長

中文english 給定一張用二維陣列表示的網格地圖,其中1表示陸地單元格,0表示水域單元格。網格地圖中的單元格視為水平 垂直相連 斜向不相連 這個網格地圖四周完全被水域包圍著,並且其中有且僅有乙個島 定義為一塊或多塊相連的陸地單元格 這個島不包含湖 定義為不和外圍水域相連的水域單元格 乙個地圖單元...