关于负环
  • 板块题目总版
  • 楼主wlxs2006
  • 当前回复13
  • 已保存回复13
  • 发布时间2020/9/13 22:01
  • 上次更新2023/11/5 13:13:19
查看原帖
关于负环
242405
wlxs2006楼主2020/9/13 22:01

P3385为什么所有hack数据都可以过,然后只有18分???

#include<iostream>
#include<cstring>
using namespace std;
#define ll long long
ll t,n,m,d[2005],tot=0;
struct ed{
	ll u,v,w;
} edge[30005];
bool bellman_Ford(ll v0){
	memset(d,0x3f,sizeof(d));
	d[v0]=0;
	for(ll i=1;i<n;++i)
		for(ll j=1;j<=tot;++j)
			if(d[edge[j].u]+edge[j].w<d[edge[j].v]) d[edge[j].v]=d[edge[j].u]+edge[j].w;
	for(ll j=1;j<=tot;++j) if(d[edge[j].u]+edge[j].w<d[edge[j].v]) return false;
	return true;
}
int main(){
	cin>>t;
	while(t--){
		cin>>n>>m;
		ll x,y,z;
		for(ll i=1;i<=m;++i){
			cin>>x>>y>>z;
			edge[++tot].u=x;
			edge[tot].v=y;
			edge[tot].w=z;
			if(z>=0){
				edge[++tot].u=y;
				edge[tot].v=x;
				edge[tot].w=z;
			}
		}
		if(bellman_Ford(1)) cout<<"NO"<<endl;
		else cout<<"YES"<<endl;
	}
return 0;
}

向大佬求助!!!

2020/9/13 22:01
加载中...