Wormholes -floyd判断负环

  • 注意判断重边就好
  • 负环能够回去
  • #include
    #include
    using namespace std;
    #define inf 0x3f3f3f3f
    #define maxn 555
    int mmp[maxn][maxn];
    int x,y,z,t,n,w,m;
    bool floyd()
    {
        for(int k=1; k<=n; k++)
            for(int i=1; i<=n; i++)
            {
                for(int j=1; j<=n; j++)
                {
                    if(mmp[i][k]+mmp[k][j]>t;
        while(t--)
        {
            memset(mmp,inf,sizeof(mmp));
            cin>>n>>m>>w;
            for(int i=1; i<=n; i++)
                mmp[i][i]=0;
            while(m--)
            {
                cin>>x>>y>>z;
                if(z>x>>y>>z;
                mmp[x][y]=-z;
            }
            if(floyd())
                cout<<"YES"<
  •  

你可能感兴趣的:(最短路)