社区讨论
求调
P3385【模板】负环参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mdgtd9qd
- 此快照首次捕获于
- 2025/07/24 11:09 8 个月前
- 此快照最后确认于
- 2025/11/04 03:50 4 个月前
CPP
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#define int long long
const int INF=0x3f3f3f3f3f3f;
int T;
int n,m;
struct node
{
int u,w;
};
vector<node>g[2020];
int vis[2020],tag[2020],cnt[2020];
void add(int u,int v,int w)
{
g[u].push_back(node{v,w});
if(w>=0)
{
g[v].push_back(node{u,w});
}
}
queue<int>q;
bool SPFA()
{
q.push(1);
vis[1]=1;
tag[1]=0;
while(q.size())
{
q.pop();
}
while(q.size())
{
int j;
int now=q.front();
vis[now]=0;
for(j=0;j<g[now].size();j++)
{
int nt=g[now][j].u;
int nw=g[now][j].w;
if(tag[nt]>tag[now]+nw)
{
tag[nt]=tag[now]+nw;
if(vis[nt]==1)
{
continue;
}
if(++cnt[nt]>=n)
{
return 1;
}
q.push(nt);
vis[nt]=1;
}
}
q.pop();
}
return 0;
}
signed main()
{
int i;
cin>>T;
while(T--)
{
memset(g,0,sizeof(g));
memset(cnt,0,sizeof(cnt));
memset(tag,INF,sizeof(tag));
memset(vis,0,sizeof(vis));
cin>>n>>m;
for(i=1;i<=m;i++)
{
int u,v,w;
cin>>u>>v>>w;
add(u,v,w);
}
if(SPFA()==1)
{
cout<<"YES\n";
}
else
{
cout<<"NO\n";
}
}
return 0;
}
求调
回复
共 0 条回复,欢迎继续交流。
正在加载回复...