问题标题: 酷町堂:2221 任务派遣

0
0
已解决
杜承俊
杜承俊
资深守护
资深守护

https://ke.codingtang.com/#/problem/problemSub?id=2221

Wrong Answer

#include<bits/stdc++.h>
using namespace std;
long long p,w,mi=1e15+10,t;
long long f[60][60];
char c1,c2;
int bh(char c){
    if(c>='A'&&c<='Z')return c-'A'+1;
    return c-'a'+27;
}
int main(){
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
    for(int i=1;i<=60;i++)
        for(int j=1;j<=60;j++)
            f[i][j]=1e15+10;
    cin>>p;
    for(int i=1;i<=p;i++){
        cin>>c1>>c2>>w;
        int t=bh(c1),k=bh(c2);
        f[t][k]=w;f[k][t]=w;
    }
    for(int i=1;i<=52;i++)
        f[i][i]=0;
    for(int k=1;k<=52;k++)
        for(int i=1;i<=52;i++)
            for(int j=1;j<=52;j++)
                f[i][j]=min(f[i][k]+f[k][j],f[i][j]);
    for(int i=1;i<=25;i++)
        if(f[i][26]<mi){
            mi=f[i][26];
            t=i;
        }
    cout<<char(t-1+'A')<<" "<<mi;
    return 0;
}
 


0
0
我要回答