题一道(为什么报零)
  • 板块灌水区
  • 楼主spyz202212
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/22 07:16
  • 上次更新2023/11/2 12:02:51
查看原帖
题一道(为什么报零)
1025010
spyz202212楼主2023/10/22 07:16
using namespace std;
int n,m,x,y,z,f[101][101];
int dis[101];
bool vis[101];
int main(){
     
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    cin>>x>>y>>z;
    f[x][y]=f[y][x]=z;
    dis[1]=0;
    for(int i=1;i<=n-1;i++){
    int k=1,minn=0X7fffffff;
    for(int j=1;j<=n;j++){
        if(vis[j]!=0&&dis[j]<minn){
            minn=dis[j];
            k=j;
        }
    }
    vis[k]=1;
    for(int j=1;j<=n;j++)
        if(dis[k]+f[k][j]<dis[j])
            dis[j]=dis[k]+f[k][j];
            }
    int mmax=0;
    for(int i=1;i<=n-1;i++){
        if(dis[i]>mmax) mmax=dis[i];
        if(dis[i]==0X7fffffff){
            cout<<"-1";
            return 0;
        }
    }
    cout<<mmax;
        return 0;
    }
    题目在主页
2023/10/22 07:16
加载中...