问题标题: 蜜汁WA,请大佬帮帮本蒟蒻啊,1275

1
0
已解决
陆麟瑞
陆麟瑞
资深天翼
资深天翼
http://judge.codingtang.com/problem/1275/
30分
#include <bits/stdc++.h>
using namespace std;
int d[900][900];
int main()
{
    int n,a;
    cin>>n>>a;
    for(int i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
        {
            string c;
            int x;
            cin>>c;
            stringstream ss;
            ss << c;
            ss >> x;
            ss.clear();
            if(x!=0||x==0&&c=="0")
            {
                d[i][j]=x;
            }
            else
            {
                d[i][j]=1000000;
            }
        }
    }
    for(int i=1; i<=n; i++)
    for(int j=1; j<=n; j++)
    for(int k=1; k<=n; k++)
    if(i!=j&&i!=k&&j!=k&&d[i][j]>d[i][k]+d[k][j])
    {
        d[i][j]=d[i][k]+d[k][j];
    }
    for(int i=1; i<=n; i++)
    {
        if(i!=a) cout<<"("<<a<<" -> "<<i<<") = "<<d[a][i]<<endl;
    }
    return 0;
}

2
已采纳
葛新
葛新
资深守护
资深守护

long long d[900][900];

long long n,a;

long long x;

d[i][j]=2000000000000;

1
葛新
葛新
资深守护
资深守护

佛洛依德写错了,k循环要在最外层。

0
0
0
0
葛新
葛新
资深守护
资深守护

用long long,初值赋大一点。

我要回答