数据弱,代码有问题,等待修正

 

#include <iostream>
using namespace std;

__int64 lmax
=0x7FFFFFFF;
const long MAXN=1200;

__int64 hash[MAXN][MAXN];
__int64 Dis[MAXN];

long Start,End;
long m,n;//点,边

int main()
{
    lmax
=lmax<<10;
    
long T;
    scanf(
"%ld",&T);

    
while (T--)
    {
        scanf(
"%ld",&m);
        scanf(
"%ld %ld",&Start,&End);
        scanf(
"%ld",&n);
        
long i,ii;
        
for (i=0;i<MAXN;++i)
        {
            Dis[i]
=lmax;
            
for (ii=0;ii<MAXN;++ii)
            {
                hash[i][ii]
=lmax;
            }
        }
        
for (i=0;i<n;++i)
        {
            
long from,to;
            __int64 cost;
            scanf(
"%ld %ld %I64d",&from,&to,&cost);
        
            
if (cost<hash[from][to])
            {
                hash[from][to]
=cost;
            }
        }

        Dis[Start]
=0;

        
long j,k;
        
for (i=1;i<m;++i)
        {
            
bool doit=false;
            
for (j=0;j<m;++j)
            {
                
for (k=0;k<m;++k)
                {
                    
if (hash[j][k]!=lmax&&Dis[j]<lmax&&Dis[j]+hash[j][k]<Dis[k])
                    {
                        Dis[k]
=Dis[j]+hash[j][k];
                        doit
=true;
                    }
                }
            }
            
if (!doit)
            {
                
break;
            }
        }

        
bool Y=true;
        
for (j=0;j<m;++j)
        {
            
for (k=0;k<m;++k)
            {
                
if (Dis[j]<lmax&&Dis[j]+hash[j][k]<Dis[k])
                {
                    Y
=false;
                    
goto l1;
                }
            }
        }
l1:


        
if (Dis[End]==lmax||!Y)
        {
            printf(
"infinity\n");
        }
        
else
        {
            printf(
"%I64d\n",Dis[End]);
        }

    }
    
return 0;
}

相关文章:

  • 2021-10-22
  • 2021-12-14
  • 2021-09-20
  • 2022-12-23
  • 2021-12-08
  • 2021-05-30
猜你喜欢
  • 2022-12-23
  • 2022-02-27
  • 2022-12-23
  • 2021-06-16
  • 2022-02-27
相关资源
相似解决方案