#include <bits/stdc++.h>
#define M 100005
using namespace std;
int n,k,m,dis[M],i,ww,vis[M],dis2[M],num=
0x3f,vis2[M],arr[
100][
100],xx,yy,vis3[M],nn;
char x,y,ll;
struct cmp{
bool operator ()(
const int &a,
int &b)
const
{
return dis[a]>
dis[b];
}
};
priority_queue <
int,vector<
int>,cmp>
mqy;
void djj (
int a)
{
memset(dis,0x3f,
sizeof(dis));
memset(vis,0,
sizeof(vis));
vis[a]=
1; dis[a]=
0;
for(i=
0;i<nn;i++
)
{
for(
int j=
0;j<=
57;j++
)
{
if(arr[a][j]!=
0&&dis[j]>arr[a][j]+
dis[a])
{
dis[j]=dis[a]+
arr[a][j];mqy.push(j);
}
}
while(!mqy.empty()&&vis[mqy.top()]==
1) mqy.pop();
a=mqy.top();vis[a]=
1;mqy.pop();
}
}
int main(){
scanf("%d",&
n);
for(i=
1;i<=n;i++
)
{
scanf("%c%c%d",&x,&y,&
ww);
xx=
'z'-x;yy=
'z'-
y;
if(xx>=
32&&xx<=
57)
vis2[xx]=
1;
if(yy>=
32&&yy<=
57)
vis2[yy]=
1;
if(vis3[xx]==
0)
nn++
;
if(arr[xx][yy]>ww||arr[xx][yy]==
0)
arr[xx][yy]=
ww;
}
djj(32);
for(i=
33;i<=
57;i++
)
{
if(num>
dis[i])
{
num=dis[i];ll=
'z'-
32;
}
}
cout<<ll<<
" "<<
num;
}
转载于:https://www.cnblogs.com/Lamboofhome/p/11545643.html
相关资源:《牛奶传递爱之最可爱的人》文明美德征文_社会美德的基本内容有哪些