zoukankan      html  css  js  c++  java
  • 链式前向星

    #include <cstdlib>
    #include <cctype>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    #include <algorithm>
    #include <vector>
    #include <string>
    #include <iostream>
    #include <sstream>
    #include <map>
    #include <set>
    #include <queue>
    #include <stack>
    #include <fstream>
    #include <numeric>
    #include <iomanip>
    #include <bitset>
    #include <list>
    #include <stdexcept>
    #include <functional>
    #include <utility>
    #include <ctime>
    
    
    #define PB push_back
    #define MP make_pair
    #define FOR1(n) for(int i=0;i<(n);++i)
    #define FOR2(l,h) for(int i=(l);i<=(h);++i)
    #define FOR3(h,l) for(int i=(h);i>=(l);--i)
    
    using namespace std;
    typedef vector<int> VI;
    typedef vector<string> VS;
    typedef vector<double> VD;
    typedef long long LL;
    typedef pair<int,int> PII;
    
    #define PI acos((double)-1)
    #define E exp(double(1))
    #define K 1000000+9
    int h[K],tol=0;
    int d[K],vis[K],c[K],flag;
    struct node
    {
        int to,next,w;
    }e[K];
    void init(int n)
    {
        memset(h,-1,sizeof(h));
        memset(e,0,sizeof(e));
        memset(d,0x3f,sizeof(d));
        memset(c,0,sizeof(c));
        memset(vis,0,sizeof(vis));
        tol=0;
        flag=0;
        d[1]=0;
    }
    void add(int u,int v,int w)
    {
        e[tol].to=v;
        e[tol].next=h[u];
        e[tol].w=w;
        h[u]=tol++;
    }
    void dfs(int s)
    {
        vis[s]=1;
        for(int i=h[s];~i;i=e[i].next)
        {
            int v=e[i].to;
            if(d[v]>d[s]+e[i].w)
            {
                d[v]=d[s]+e[i].w;
                if(vis[v])
                {
                    flag=1;
                    return ;
                }
                dfs(v);
            }
        }
        vis[s]=0;
    }
    int main(void)
    {
        int t;
        cin>>t;
        while(t--)
        {
            int n,m,q,u,v,w;
            cin>>n>>m>>q;
            init(n);
            for(int i=1;i<=m;i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                add(u,v,w);
                add(v,u,w);
            }
            for(int i=1;i<=q;i++)
            {
                scanf("%d%d%d",&u,&v,&w);
                add(u,v,-w);
            }
            dfs(1);
            if(flag)
               printf("YES
    ");
            else
                printf("NO
    ");
        }
    
        return 0;
    }

      poj3259 Wormholes

  • 相关阅读:
    9、Spring Boot 2.x 集成 Thymeleaf
    【专题】Spring Boot 2.x 面试题
    8、Spring Boot 2.x 服务器部署
    7、Spring Boot 2.x 集成 Redis
    6、Spring Boot 2.x 集成 MyBatis
    5、Spring Boot 2.x 启动原理解析
    4、Spring Boot 2.x 自动配置原理
    3、Spring Boot 2.x 核心技术
    2、Spring Boot 2.x 快速入门
    centOS下安装JDK1.8.60,glassfish4.1.1以及MySQL
  • 原文地址:https://www.cnblogs.com/weeping/p/5675959.html
Copyright © 2011-2022 走看看