社区讨论
WA 37pts求调,玄关
P5960【模板】差分约束参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mm4j2tkq
- 此快照首次捕获于
- 2026/02/27 14:45 2 周前
- 此快照最后确认于
- 2026/02/28 23:55 上周
AC on #2#4#6#11
CPP#include<iostream>
#include<queue>
#include<cstring>
#include<vector>
using namespace std;
struct node{
int v,w;
};
int n,m,d[50000],cnt[50000];
bool in[50000];
vector<node> g[50000];
queue<int>q;
bool SPFA(){
memset(d,0x7f,sizeof(d));
d[0]=0;
in[0]=true;
q.push(0);
cnt[0]++;
while(!q.empty()){
int u=q.front();
q.pop();
in[u]=false;
for(auto i:g[u]){
int v=i.v,w=i.w;
if(d[v]>d[u]+w){
d[v]=d[u]+w;
if(!in[v]){
cnt[v]++;
in[v]=true;
q.push(v);
if(cnt[v]==n)return false;
}
}
}
}
return true;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>m;
int u,v,w;
for(int i=1;i<=m;i++){
cin>>u>>v>>w;
g[u].push_back((node){v,-w});
g[v].push_back((node){u,w});
}
for(int i=1;i<=n;i++)g[0].push_back((node){i,0});
if(SPFA())for(int i=1;i<=n;i++)cout<<d[i]<<' ';
else cout<<"NO";
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...