
由于数据范围很小,直接 Floyd 暴力多元最短路即可。
#include
using namespace std;
int mp[210][210];
int main()
{
int n, m;
cin >> n >> m;
memset (mp, 0x3f, sizeof mp);
while (m --)
{
int a, b, c;
cin >> a >> b >> c;
mp[a][b] = mp[b][a] = c;
}
for (int k = 1; k <= n; k ++)
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= n; j ++)
mp[i][j] = min(mp[i][j], mp[i][k] + mp[k][j]);
int mx = 0;
for (int i = 2; i <= n; i ++)
if (mp[1][i] == 0x3f3f3f3f)
{
cout << "-1\n";
return 0;
}
else
mx = max(mx, mp[1][i]);
cout << mx << '\n';
return 0;
}
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数
凑字数凑字数凑字数凑字数