zoukankan      html  css  js  c++  java
  • 关系运算图模板

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    const int M=999999;
    int n,m,f[M],flag;
    int vis[M],d[M],dis[M];
    int nex[M],tot,to[M],head[M],cos[M];
    void add(int x,int y,int z)
    {
        nex[++tot]=head[x];
        to[tot]=y;
        cos[tot]=z;
        head[x]=tot;
    }
    void spfa(int s)
    {
        d[1]=s;
        vis[s]=1;
        memset(dis,128,sizeof(dis));
        dis[s]=0;
        int h=0,t=1;
        do{
            h++;
            int x=d[h];
            vis[x]=0;
            for(int i=head[x];i;i=nex[i])
            {
                int tmp=to[i];
                if(dis[tmp]<dis[x]+cos[i])
                {
                dis[tmp]=dis[x]+cos[i]; 
                if(!vis[tmp]) 
                {
                vis[tmp]=1;
                d[++t]=tmp;
                f[tmp]++;
                if(f[tmp]>n)
                {
                printf("NO");
                flag=1;
                return; 
                }
                }
                }
            }
        }
        while(h<t);
    }
    int main()
    {
    
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++)
        {
        int a,b,t;
        scanf("%d%d%d",&a,&b,&t);
        if(t==1)
        add(b,a,1);
        if(t==0)
        {
            add(a,b,0);
            add(b,a,0);
        }
        if(t==-1)
        {
        add(a,b,1);
        }
        }
    
        for(int i=1;i<=n;i++)
        add(9999,i,0);
        spfa(9999);
        int max1=-9999999;
        for(int i=1;i<=n;i++)
        {
        max1=max(max1,dis[i]);  
        }
        if(flag==0)
        printf("%d",max1);
    
    }

    全弄成>=,跑最长路

  • 相关阅读:
    git 的安装与初始化
    django的ORM
    elasticsearch基本使用
    给django视图类添加装饰器
    python的编码
    为django项目配置celery的后台启动
    django+celery +rabbitmq
    hadoop安装
    django中间件
    Blockchain For Dummies(IBM Limited Edition
  • 原文地址:https://www.cnblogs.com/wspl98765/p/6819878.html
Copyright © 2011-2022 走看看