#include<iostream>
#include<queue>
#include<vector>
using namespace std;
struct node{
int to,val;
node(int y_,int val_)
{to=y_,val=val_;}
};
vector<node>gra[10010];
long long dis[10010];
bool vis[10010];
int cnt[10010];
int n,m,s=1;
bool SPFA()
{
for(int p=1;p<=n;p++)
dis[p]=2147483647;
queue<int>que;
que.push(s);
dis[s]=0;
vis[s]=1;
while(!que.empty())
{
int fr=que.front();
que.pop();
vis[fr]=0;
for(int p=0;p<gra[fr].size();p++)
{
int t=gra[fr][p].to;
if(dis[t]>dis[fr]+gra[fr][p].val)
{
dis[t]=dis[fr]+gra[fr][p].val;
if(!vis[t])
{
vis[t]=1;
que.push(t);
cnt[t]++;
if(cnt[t]>=n)return 1;
}
}
}
}
return 0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int p=1;p<=n;p++)
cnt[p]=0;
for(int p=1;p<=n;p++)
for(int i=0;i<gra[p].size();i++)
gra[p][i].to=0,gra[p][i].val=0;
for(int p=1,x,y,z;p<=m;p++)
{
cin>>x>>y>>z;
gra[x].push_back(node(y,z));
if(z>=0)
gra[y].push_back(node(x,z));
}
if(SPFA())cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
请问哪里错了/kk