rt,马蜂自认清晰求调
实在是没什么好多说的了
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N=1e5+10;
int n,m,s,w;
struct edge {
int v,w;
};
vector<edge> e[N];
int dis[N],vis[N];
bool bellmanford(){
memset(dis,2147483647,sizeof(dis));
dis[s]=0;
bool flag;
for(int i=1;i<=n;i++){
flag=0;
for(int u=1;u<=n;u++){
if(dis[u]==2147483647) continue;
for(auto ed:e[u]){
int v=ed.v,w=ed.w;
if (dis[v]>dis[u]+w){
dis[v]=dis[u]+w;
flag=true;
}
}
}
if(!flag) break;
}
return flag;
}
int main(){
int T;
cin>>T;
while(T--){
cin>>n>>m;
memset(e,0,sizeof(e));
for(int i=1;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
e[x].push_back({y,z});
if(z>=0)e[y].push_back({x,z});
}
s=1;
if(bellmanford()) puts("YES");
else puts("NO");
}
return 0;
}