求助67分代码求调,急
查看原帖
求助67分代码求调,急
952033
lutaoquan2012楼主2023/12/13 18:09

67分紧急求助

//
// Created by 55062 on 2023/12/13.
//
//
// Created by 55062 on 2023/12/13.
//
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll m,k,dis[600],v[600],ans=0x3f3f3f3f,cnt=0;//dis数组表示每个点到Z点的距离
char x,y;
struct node{
    ll v,u;
};
vector<node> adj[600];
struct D{
    ll v,u;
    bool operator<(const D &x)const{
        return u>x.u;
    }
};
priority_queue<D> q;
int main(){
    cin>>m;
    for(int i=1;i<=m;i++){
        cin>>x>>y>>k;
        ll xx,yy;
        if(x>='a'&&x<='z') xx=x-'a'+26+1;
        else xx=x-'A'+1;
        if(y>='a'&&y<='z') yy=y-'a'+26+1;
        else yy=y-'A'+1;
        adj[yy].push_back({xx,k});
    }for(int i=1;i<=52;i++) dis[i]=0x3f3f3f3f;
    dis[26]=0;
    q.push({26,0});
    while(!q.empty()){
        ll x=q.top().v,y=q.top().u;
        q.pop();
        if(v[x]==1) continue;
        v[x]=1;
        for(int i=0;i<adj[x].size();i++){
            ll nx=adj[x][i].v,ny=adj[x][i].u;
            if(v[nx]==0&&y+ny<dis[nx]){
                dis[nx]=dis[x]+ny;
                q.push({nx,dis[nx]});
            }
        }
    }for(int i=1;i<=25;i++)
        if(ans>dis[i]) {
            ans = dis[i];
            cnt = i;
        }
    char aa=(cnt-1)+'A';
    cout<<aa<<" "<<ans;
    return 0;
}
2023/12/13 18:09
加载中...