求助!!!为啥会RE,我真今天所有图都要调RE。。。
查看原帖
求助!!!为啥会RE,我真今天所有图都要调RE。。。
90428
胖达和阿极楼主2022/7/26 22:26
#include<bits/stdc++.h>
using namespace std;
 
const int INF = 0x7f7f7f7; 
const int N = 2e5+10;
struct edge{
	int v,w;
};
vector<edge>a[N];
int n,m;

int dis[N],vis[N],in[N],cnt[N];
queue<int>q;
bool SPFA(){
	
	for(int i=1;i<=n;i++){
		dis[i] = INF;vis[i] = 0;vis[i] =0 ;cnt[i]=0;
	}
	dis[1]=0;vis[1]=1;cnt[1]=1;
	q.push(1);
	while(!q.empty()){
		int u = q.front();
		q.pop();
		vis[u] = 0;
		for(int j=0;j<=a[u].size()-1;j++){
			edge ed = a[u][j];
			int v =ed.v,w=ed.w;
			if(dis[v]>dis[u]+w){
				dis[v] = dis[u] + w;
				if(!vis[v]){
					cnt[v] = cnt[v]+1;
					vis[v]=1;
					if(cnt[v]>=n){
						return 0;
					}
					q.push(v);
				}
			}
		}
	}
	return 1;
}
int main(){
	int n1;
	
	int g1,g2,g3;edge g4;
	freopen("P3385_1.in","r",stdin);
	freopen("P3385_1.out","w",stdout);
	cin>>n1;
	while(n1--){
		scanf("%d%d",&n,&m);
		for(int i=1;i<=m;i++){
			scanf("%d%d%d",&g1,&g2,&g3);
			g4.v=g2;g4.w=g3;
			a[g1].push_back(g4);	
		}
		cout<<(SPFA()?"NO":"YES")<<endl;
		for(int i=1;i<=n;i++){
			a[i].clear();
		} 
	}
	return 0;
}

2022/7/26 22:26
加载中...