HDU - 2112 HDU Today
https://vjudge.net/problem/HDU-2112
AC代码
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
using namespace std;
const int N=210;
int n,m;
int g[N][N];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
while(cin>>n)
{
if(n==-1) break;
map<string,int> q;
int cnt=1,c,sx,ex;
string a,b;
cin>>a>>b;
q[a]=1;
cnt++;
sx=1;
if(a!=b)
{
q[b]=cnt;
cnt++;
ex=2;
}
else
ex=1;
memset(g,0x3f,sizeof g);
for(int i=0;i<n;i++)
{
cin>>a>>b>>c;
if(q.find(a)==q.end())
q[a]=cnt++;
if(q.find(b)==q.end())
q[b]=cnt++;
if(g[q[a]][q[b]]>c)
g[q[a]][q[b]]=c;
if(g[q[b]][q[a]]>g[q[a]][q[b]])
g[q[b]][q[a]]=g[q[a]][q[b]];
}
if(sx==ex)
{
cout<<"0\n";
continue;
}
for(int k=1;k<=cnt-1;k++)
for(int i=1;i<=cnt-1;i++)
for(int j=1;j<=cnt-1;j++)
{
if(g[i][j]>g[i][k]+g[k][j])
g[i][j]=g[i][k]+g[k][j];
}
if(g[1][2]!=0x3f3f3f3f) cout<<g[1][2]<<"\n";
else cout<<"-1\n";
}
return 0;
}
本文来自博客园,作者:斯文~,转载请注明原文链接:https://www.cnblogs.com/zhiweb/p/15483310.html

浙公网安备 33010602011771号