• 图论--DFS-SPFA求负环


    模板:洛谷P3385
    由于DFS-SPFA可以在找到负环后及时退出,所以不会像BFS-SPFA那样TLE。
    代码:

    #include<bits/stdc++.h>
    using namespace std;
    inline void read(int &x){
        x=0;
        int k=1;
        char ch=' ';
        while(ch!='-'&&(ch<'0'||ch>'9')){
            ch=getchar();
        }
        if(ch=='-'){
            k=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9'){
            x=x*10+ch-'0';
            ch=getchar();
        }
        x*=k;
    }
    struct edge{
        int to,w,next;
    }e[400001];
    int tot;
    int head[200001];
    inline void addedge(int x,int y,int w){
        e[++tot].to=y;
        e[tot].next=head[x];
        e[tot].w=w;
        head[x]=tot;
    }
    int n,m;
    int vis[200001];
    int d[200001];
    int flag;
    void spfa(int x){
        if(vis[x]){
            flag=1;
            return;
        }
        vis[x]=1;
        for(int i=head[x];i;i=e[i].next){
            int u=e[i].to;
            if(d[u]>d[x]+e[i].w){
                d[u]=d[x]+e[i].w;
                spfa(u);
                if(flag)return;
            }
        }
        vis[x]=0;
    }
    int main(){
        int F;
        read(F);
        while(F--){
            memset(d,0,sizeof(d));
            memset(vis,0,sizeof(vis));
            memset(head,0,sizeof(head));
            tot=0;
            flag=0;
            read(n);
            read(m);
            for(int i=1;i<=m;i++){
                int x,y,l;
                read(x);
                read(y);
                read(l);
                if(l>=0){
                    addedge(x,y,l);
                    addedge(y,x,l);
                }
                else{
                    addedge(x,y,l);
                }
            }
            for(int i=1;i<=n;i++){spfa(i);if(flag)break;}
            if(flag)printf("YE5
    ");
            else printf("N0
    ");
        }
        return 0;
    }
  • 相关阅读:
    A
    MongoDB小结17
    MongoDB小结16
    金蝶无法生成下推发票
    MongoDB小结15
    MongoDB小结14
    MongoDB小结13
    MongoDB小结12
    MongoDB小结11
    MongoDB小结10
  • 原文地址:https://www.cnblogs.com/stone41123/p/7581269.html
Copyright © 2020-2023  润新知