题目描述
blablabla
样例
blablabla
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N = 510;
int g[N][N];
int dist[N];
bool st[N];
int n, m;
int Dijkstra()
{
memset(dist, 0x3f, sizeof(dist));
dist[1] = 0;
for(int i = 0; i < n; i++ )
{
int t = -1;
for(int j = 1; j <= n; j++ )
{
//j节点还未确定最短距离,而且j到起点的距离还不是无穷大
if(!st[j] && (t==-1 || dist[t]>dist[j]))
t = j; //t标记为当前访问的点
}
//更新t标记节点到每个点的路径值
for(int k = 1; k <= n; k++ )
dist[k] = min(dist[k], dist[t] + g[t][k]);
st[t] = true; //t节点标记已经确定过
}
if(dist[n] >= 0x3f3f3f) return -1;
}
int main()
{
cin >> n >> m;
memset(g, 0x3f, sizeof(g));
while(m--)
{
int x, y, z;
cin >> x >> y >> z;
g[x][y] = min(g[x][y], z);
}
cout << Dijkstra() << endl;
return 0;
}