[附提交记录](https://www.luogu.com.cn/record/70430958)
by Dream_weavers @ 2022-03-02 20:34:21
@[Dream_weavers](/user/572482) 请问你知道0x3f3f是多少么?如果不知道,可以
```cpp
cout<<0x3f3f<<endl;
```
看一看
by 泥土笨笨 @ 2022-03-02 20:52:01
@[Dream_weavers](/user/572482) inf最好设为1e9这类超级大数。
by int233 @ 2022-03-02 20:58:28
@[泥土笨笨](/user/43206) 为什么我把INF改成999999999999还是没过?WA一个点
by Dream_weavers @ 2022-03-02 21:06:48
@[Dream_weavers](/user/572482) 你好,我是int233小号,我帮你调对了。
Code:
```cpp
#include<bits/stdc++.h>
using namespace std;
const int INF=2147483647;
const int N=1e5+5;
int n,m;
char ans;
struct Edge{
int v,w;
Edge(int v,int w):v(v),w(w){}
};
struct Node{
int u,d;
Node(int u,int d):u(u),d(d){}
bool operator < (const Node &a) const{
return d<a.d;
}
};
int d[N],vis[N];
vector<Edge> adj[N];
void dij(int s){
for(int i=1;i<=200;i++)d[i]=INF;
d[s]=0;
priority_queue<Node>q;
q.push(Node(s,0));
while(!q.empty()){
int ux=q.top().u;
q.pop();
if(vis[ux])continue;
vis[ux]=1;
for(int i=0;i<adj[ux].size();i++){
int v=adj[ux][i].v;
int w=adj[ux][i].w;
if(d[v]>d[ux]+w){
d[v]=d[ux]+w;
q.push(Node(v,-d[v]));
}
}
}
}
signed main(){
cin>>n;
for(int i=0;i<n;i++){
char u,v;
int w;
cin>>u>>v>>w;
adj[(int)u].push_back(Edge((int)v,w));
adj[(int)v].push_back(Edge((int)u,w));
}
dij((int)'Z');
ans='A';
for(int i='B';i<='Y';i++){
if(d[(int)i]<d[(int)ans])
ans=i;
}
cout<<ans<<" "<<d[(int)ans];
return 0;
}
```
by Phigros_Light @ 2022-03-02 21:08:57
@[Dream_weavers](/user/572482) 因为999999999999这个数超过int范围了。你可以选一个int范围内的,并且比所有边权加起来都大的数字作为INF
by 泥土笨笨 @ 2022-03-02 21:09:06
感谢@[泥土笨笨](/user/43206) 和 @[int233](/user/333855) ,已经AC了,此贴结
by Dream_weavers @ 2022-03-02 21:10:49