Codevs 1021 瑪麗卡 洛谷 P1186

2021-07-28 20:36:36 字數 2478 閱讀 8633

時間限制: 2 s  

空間限制: 128000 kb  

題目等級 : 大師 master

麥克找了個新女朋友,瑪麗卡對他非常惱火並伺機報復。

因為她和他們不住在同乙個城市,因此她開始準備她的長途旅行。

在這個國家中每兩個城市之間最多只有一條路相通,並且我們知道從乙個城市到另乙個城市路上所需花費的時間。

麥克在車中無意中聽到有一條路正在維修,並且那兒正堵車,但沒聽清楚到底是哪一條路。無論哪一條路正在維修,從瑪麗卡所在的城市都能到達麥克所在的城市。

瑪麗卡將只從不堵車的路上通過,並且她將按最短路線行車。麥克希望知道在最糟糕的情況下瑪麗卡到達他所在的城市需要多長時間,這樣他就能保證他的女朋友離開該城市足夠遠。

編寫程式,幫助麥克找出瑪麗卡按最短路線通過不堵車道路到達他所在城市所需的最長時間(用分鐘表示)。

輸入描述 input description

第一行有兩個用空格隔開的數n和m,分別表示城市的數量以及城市間道路的數量。1≤n≤1000,1≤m≤n*(n-1)/2。城市用數字1至n標識,麥克在城市1中,瑪麗卡在城市n中。

接下來的m行中每行包含三個用空格隔開的數a,b和v。其中1≤a,b≤n,1≤v≤1000。這些數字表示在a和城市b中間有一條雙行道,並且在v分鐘內是就能通過。

輸出描述 output description

輸出檔案的第一行中寫出用分鐘表示的最長時間,在這段時間中,無論哪條路在堵車,瑪麗卡應該能夠到達麥克處,如果少於這個時間的話,則必定存在一條路,該條路一旦堵車,瑪麗卡就不能夠趕到麥克處。

樣例輸入 sample input

5 7

1 2 8

1 4 10

2 3 9

2 4 10

2 5 1

3 4 7

3 5 10

樣例輸出 sample output

27

1 #include2 #include3 #include4 #include5

using

namespace

std;

6int map[1000][1000],pre[1010],dis[1010],lu[1010];7

int n,m,tot,ans=0;8

bool exist[1010];9

void spfa(int

s)1025}

26}27}

28}29void

dij()

3046}47

intmain()

4854 pre[1]=0

;55 spfa(1

);56 ans=max(ans,dis[n]);

57 ++tot;lu[tot]=n;

58int p=n;

59while(pre[p]!=0)64

for(int i=1;i<=tot-1;i++)

73 printf("%d"

,ans);

74return0;

75 }

以上是我的** 本人認為沒毛病,求大神解救~~

ac**:

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7const

int maxn = 1005;8

const

int maxm = maxn*(maxn - 1)/2;9

struct

edge

10 edge[maxm];

13int

head[maxm],vis[maxn],dis[maxn],prev[maxn];

14int n,m,tot = 0

,res;

1516

void addedge(int u,int v,int

w)17

;22 head[u] = tot++;23}

2425

int spfa(int x,int y) //

雖然瑪麗卡在第n個城市,但是1-n的最短距離固定,

26 51}52

}53}54

return

dis[n];55}

5657

intmain()

5870 res = spfa(0,0

);71

int tmp =n;

72 queueq;

73while

(tmp)

7478

while (q.size() > 1)79

84 printf("

%d\n

",res);

85return0;

86 }

我們可以用一遍spfa,求出最短路,然後不難發現,炸最短路上的邊可以是答案變得更大,而炸掉非最短路上的邊對答案沒任何影響

Code VS 1021 瑪麗卡題解

spfa algorithm 題目傳送門 麥克找了個新女朋友,瑪麗卡對他非常惱火並伺機報復。因為她和他們不住在同乙個城市,因此她開始準備她的長途旅行。在這個國家中每兩個城市之間最多只有一條路相通,並且我們知道從乙個城市到另乙個城市路上所需花費的時間。麥克在車中無意中聽到有一條路正在維修,並且那兒正堵...

CodeVS1021 瑪麗卡 最短路 線段樹

題目鏈結 宣告 感謝fzw kryj 的創意和熱心講解 麥克找了個新女朋友,瑪麗卡對他非常惱火並伺機報復。因為她和他們不住在同乙個城市,因此她開始準備她的長途旅行。在這個國家中每兩個城市之間最多只有一條路相通,並且我們知道從乙個城市到另乙個城市路上所需花費的時間。麥克在車中無意中聽到有一條路正在維修...

洛谷 1186 瑪麗卡

麥克找了個新女朋友,瑪麗卡對他非常惱火並伺機報復。因為她和他們不住在同乙個城市,因此她開始準備她的長途旅行。在這個國家中每兩個城市之間最多只有一條路相通,並且我們知道從乙個城市到另乙個城市路上所需花費的時間。麥克在車中無意中聽到有一條路正在維修,並且那兒正堵車,但沒聽清楚到底是哪一條路。無論哪一條路...