30分求条嘤嘤嘤
查看原帖
30分求条嘤嘤嘤
997580
woshigeshabia楼主2025/2/5 20:08
#include <bits/stdc++.h>
using namespace std;
const int N=2e3+5,M=6e3+5;
long long n,m,mm,u[M],v[M],w[M],T,dis[N],cnt=0,uu,vv,ww;
bool njzy(int s){
	while (true){cnt++;
		bool flag = true;
		for (int i = 1; i <= mm; ++i){
			if (dis[u[i]] + w[i] < dis[v[i]]){
				dis[v[i]] = dis[u[i]] + w[i];
				flag = false;}}
		if (flag) return false;
		if (cnt >= n) return true;}}
int main(){
	cin>>T;
	while (T--){cin>>n>>m;mm=0;
		for (int i = 1; i <= m; ++i){
			cin>>uu>>vv>>ww;mm++;
			u[mm] = uu, v[mm] = vv, w[mm] = ww;
			if (ww >= 0){mm++;
				u[mm] = vv, v[mm] = uu, w[mm] = ww;}}
		if (njzy(1)) cout << "YES" << endl;
		else cout << "NO" << endl;}
	return 0;
}
2025/2/5 20:08
加载中...