大佬帮帮忙,只WA了第九个点
查看原帖
大佬帮帮忙,只WA了第九个点
288716
lzqy_楼主2020/5/16 14:14

求助┭┮﹏┭┮

#include <bits/stdc++.h>
using namespace std;
long long x[200001],y[200001],w[200001];
long long d[2001];
int main()
{
  long long t;
  cin>>t;
  while(t--)
  {
    long long len=0,n,m;
    cin>>n>>m;
    for(long long i=1; i<=m; i++)
    {
      len++;
      cin>>x[len]>>y[len]>>w[len];
      if(w[len]>0)
        len++,y[len]=x[len-1],x[len]=y[len-1],w[len]=w[len-1];
    }
    for(long long i=1; i<=n; i++)
      d[i]=INT_MAX;
    d[1]=0;
    for(long long i=1; i<n; i++)
      for(long long j=1; j<=len; j++)
        if(d[x[j]]!=INT_MAX&&d[y[j]]>w[j]+d[x[j]])
          d[y[j]]=w[j]+d[x[j]];
    bool k=0;
    for(long long i=1; i<=len; i++)
      if(d[x[i]]!=INT_MAX&&d[y[i]]>w[i]+d[x[i]])
      {
        k=1;
        cout<<"YES\n";
        break;
      }
    if(k==0)
      cout<<"NO\n";
  }
  return 0;
}
2020/5/16 14:14
加载中...