#include<bits/stdc++.h>
#define inf 0x7fffffff
#define maxn 100001
using namespace std;
struct node{
int v,w,next;
}edge[maxn<<1];
int n,m,s,cnt,dis[maxn],head[maxn],in[maxn],vis[maxn];
void add_edge(int u,int v,int w){
edge[++cnt].v=v;
edge[cnt].w=w;
edge[cnt].next=head[u];
head[u]=cnt;
}
int spfa(){
for(int i=1;i<=n;++i) dis[i]=inf;
dis[s]=0;
queue<int> q;
q.push(s);
vis[s]=1;
while(!q.empty()){
int u=q.front();
q.pop();
vis[u]=0;
for(int i=head[u];i;i=edge[i].next){
int v=edge[i].v;
if(dis[v]>dis[u]+edge[i].w){
dis[v]=dis[u]+edge[i].w;
if(!vis[v]){
vis[v]=1;
q.push(v);
++in[v];
if(in[v]>n) return 0;
}
}
}
}
return 1;
}
int main(){
int T;
cin>>T;
while(T--){
cin>>n>>m;
s=1;
for(int i=1;i<=m;++i){
int u,v,w;
cin>>u>>v>>w;
add_edge(u,v,w);
}
if(spfa()==0){
cout<<"YES" <<endl;
}
else cout<<"NO"<<endl;
}
return 0;
}
不知道哪里出问题了,求大佬告诉,AC3个点 会被这一组HACK
10
9 16
1 2 -4
1 4 0
1 7 -4
1 4 9
2 3 -2
2 8 -3
2 5 11
2 5 4
2 7 6
3 5 -3
3 7 11
4 8 1
5 6 -2
5 6 8
6 9 -4
7 9 0
8 14
1 2 5
1 7 -3
2 3 8
2 4 0
2 5 14
2 2 15
2 6 13
3 7 5
4 5 1
4 6 13
4 7 11
4 8 15
4 7 15
4 6 -2
5 39
1 2 -3
1 5 3
1 4 15
1 1 9
1 1 9
1 4 3
1 5 6
1 4 7
1 2 1
1 5 12
1 5 -3
1 2 -4
1 2 -2
2 3 2
2 4 1
2 4 4
2 3 -2
2 5 3
2 5 3
2 3 6
2 3 2
2 5 3
2 5 10
2 3 0
2 5 8
2 4 12
2 3 0
3 3 -4
3 3 1
3 5 7
3 4 10
3 5 2
3 4 9
3 5 1
3 4 -2
4 4 4
4 4 8
5 5 11
5 5 4
2 22
1 2 1
1 2 15
1 2 3
1 2 11
1 1 6
1 2 12
1 2 3
1 2 11
1 1 1
1 2 8
1 2 11
1 1 4
1 2 14
1 2 4
1 1 -4
1 2 0
1 1 -4
2 2 4
2 2 13
2 2 12
2 2 8
2 2 -3
7 35
1 2 -3
1 3 -3
1 5 -4
1 7 -3
1 6 1
1 1 9
1 5 4
1 6 15
1 7 -3
1 2 10
1 2 9
2 4 -3
2 6 8
2 5 5
2 7 4
2 7 3
2 6 10
3 3 8
3 5 -4
3 5 13
3 5 -4
3 7 15
3 7 12
3 3 -2
3 3 8
4 5 12
4 5 -1
4 5 11
4 6 12
4 5 -2
5 6 -4
5 7 13
5 6 12
6 7 -3
6 7 4
1 36
1 1 3
1 1 12
1 1 2
1 1 5
1 1 0
1 1 13
1 1 1
1 1 4
1 1 5
1 1 7
1 1 8
1 1 9
1 1 13
1 1 -1
1 1 2
1 1 -3
1 1 -1
1 1 -4
1 1 9
1 1 11
1 1 0
1 1 -4
1 1 2
1 1 1
1 1 9
1 1 -3
1 1 11
1 1 5
1 1 7
1 1 1
1 1 7
1 1 7
1 1 12
1 1 -4
1 1 1
1 1 -1
3 29
1 2 4
1 3 -4
1 2 9
1 3 12
1 2 4
1 3 14
1 2 -1
1 3 -3
1 3 7
1 3 -4
1 2 12
2 3 9
2 3 10
2 3 6
2 2 13
2 3 5
2 2 8
2 2 13
2 3 12
2 3 -1
2 2 -3
2 2 1
2 3 11
2 2 5
2 3 -1
3 3 5
3 3 0
3 3 8
3 3 9
8 42
1 2 1
1 4 -3
1 8 -3
1 8 -4
1 3 2
1 8 7
1 6 15
1 1 -4
1 2 2
1 5 -3
1 3 14
1 6 7
1 4 1
2 3 -4
2 8 14
2 3 15
2 3 8
2 6 -3
2 4 8
2 5 2
3 5 -1
3 6 1
3 7 -3
3 7 5
3 6 4
3 8 14
3 3 9
3 3 9
4 4 7
4 8 0
4 8 -2
4 8 1
4 7 8
5 8 10
5 8 -3
5 6 9
6 7 -4
6 8 6
6 7 10
7 8 8
7 7 4
8 8 0
7 12
1 2 4
1 4 14
1 7 0
1 4 4
2 3 13
2 6 12
3 5 6
3 4 10
3 4 5
4 6 6
4 6 6
5 5 5
7 31
1 2 -3
1 3 -1
1 6 5
1 5 7
1 4 9
1 6 9
1 5 2
1 1 7
1 2 13
1 6 4
2 4 -1
2 4 11
2 6 9
2 7 15
2 5 10
2 4 13
2 2 14
2 6 6
2 2 -1
3 5 1
3 7 -2
3 6 4
4 6 -2
5 7 13
5 5 4
5 6 10
5 7 4
6 6 13
7 7 0
7 7 9
7 7 15
YES
NO
YES
YES
YES
YES
YES
YES
NO
YES