Problem-I

来源:互联网 发布:kingcms php 编辑:程序博客网 时间:2024/04/30 23:29

概述:有一些t-shit,然后需要运到不同城市的地方,给出城市之间需要的时间,问所需最短时间。

思路:非常简单的最短路问题,用floyd算法解决。确定好输入情况,套用基本框架即可。

感想:非常简单的一道题,用算法框架即可解决。

#include<iostream>#include<string.h>#include<fstream>#include<stdio.h>#include<algorithm>#include<cmath>const int N = 105;int map[N][N];int n, m;const int INF = 999999;int min(int a, int b){if (a < b)return a ;else return b;}void floyd(){int i, j, k;for (k = 1;k <= n;k++)for (i = 1;i <= n;i++)for (j = 1;j <= n;j++)    map[i][j] = min(map[i][j], map[i][k] + map[k][j]);}void init(){for (int i = 1;i <= n;i++){map[i][i] = INF;for (int j = i + 1;j <= n;j++)map[i][j] = map[j][i] = INF;}}using namespace std;int main(){//ifstream cin("in.txt");while (cin >> n >> m&&n + m){init();while (m--){int x, y, z;cin >> x >> y >> z;map[x][y] = map[y][x] = z;};floyd();cout << map[1][n] << endl;}return 0;}


0 0
原创粉丝点击