社区讨论

P3385 【模板】负环,90分求调,悬关

学术版参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo2huy7z
此快照首次捕获于
2023/10/23 14:05
2 年前
此快照最后确认于
2023/10/23 14:05
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int a[2001],u[6001],v[6001],w[6001],t,n,m,ans;
int main()
{
    cin>>t;
    for(int register i=1;i<=t;++i)
    {
        cin>>n>>m;
        int t=m;
        for(int register i=1;i<=n;++i)
            a[i]=1000000000;
        for(int register i=1;i<=m;++i)
        {
            cin>>u[i]>>v[i]>>w[i];
            if(w[i]>=0)
            {
                u[++t]=v[i];
                v[t]=u[i];
                w[t]=w[i];
            }
        }
        a[1]=0;
        for(int register k=1;k<=n-1;k++)
        {
            int check=0;
            for(int register i=1;i<=t;i++)
                if(a[v[i]]>a[u[i]]+w[i])
                {
                    a[v[i]]=a[u[i]]+w[i];
                    check=1;
                }
            if(check==0) 
                break;
        }
        ans=0;
        for(int register i=1;i<=t;++i)
            if(a[v[i]]>a[u[i]]+w[i])
                ans=1;
        if(ans==1)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...