您的位置:首页 > 其它

POJ2387 Til the Cows Come Home

2017-08-12 17:17 239 查看
Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she wants to get back as quickly as possible.

(只粘了部分题目)

从头复习吧,一个知识点一个知识点地弄。

很久没做忘记怎么写最短路了。

此题唯一的细节就是两个点之间可能有多条路,在计算时选取最短的路,在输入的时候直接比较。

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
#include<map>
#include<vector>
#include<cmath>
using namespace std;
#define N 1000+5
#define MAXN 1000000
#define mem(arr,a) memset(arr,a,sizeof(arr))
#define INF 0x3f3f3f3f
#define LL long long int
#define pow(a) (a)*(a)
int d
;
int cost

;
int vis
;
int t, n;
void dijkstra(){
mem(vis, 0);
mem(d, INF);
d[1] = 0;
while (1){
int v = -1;
for (int i = 1; i <= n; i++){
if (!vis[i] && (v == -1 || d[i] < d[v] ))v = i;
}
if (v == -1)break;
vis[v] = 1;
for (int i = 1; i <= n; i++){
if (d[i]>d[v] + cost[v][i])
d[i] = d[v] + cost[v][i];
}
}
cout << d
<< endl;
}
int main(){
cin >> t >> n;
mem(cost, INF);
while (t--){
int a, b; cin >> a >> b;
int c; cin >> c;
cost[a][b]=cost[b][a]=min(cost[a][b], c);
}
dijkstra();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  最短路