P5960 【模板】差分约束这道题27分求dalao条
  • 板块题目总版
  • 楼主wdlgsj
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/17 10:42
  • 上次更新2025/1/17 14:37:13
查看原帖
P5960 【模板】差分约束这道题27分求dalao条
1134171
wdlgsj楼主2025/1/17 10:42
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m,dis[5005],a[5005],b[5005],c[5005];
bool bf(){
	memset(dis,0x3f,sizeof(dis));
	dis[1]=0;
	for(int i=1;i<n;i++){
		for(int j=1;j<=m;j++){
			dis[b[j]]=min(dis[b[j]],dis[a[j]]+c[j]);
		}
	}
	for(int i=1;i<=m;i++){
		if(dis[b[i]]>dis[a[i]]+c[i]){
			return 0;
		}
	}
	return 1;
}
int main(){
	memset(c,0x3f,sizeof(c));
    cin>>n>>m;
    for(int i=1;i<=m;i++){
    	int u,v,w;
    	cin>>u>>v>>w;
    	a[i]=u;
    	b[i]=v;
    	c[i]=min(c[i],w);
	}
	if(bf()==0){
		cout<<"NO\n";
		return 0;
	}
	for(int i=1;i<=n;i++){
		cout<<dis[i]<<" ";
	}
	cout<<"\n";
    return 0;
}
2025/1/17 10:42
加载中...