码迷,mamicode.com
首页 > 其他好文 > 详细

POJ3259 - Wormholes - 判负环模板题

时间:2020-06-22 01:34:19      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:namespace   bre   efi   flag   main   name   OLE   题意   题目   

题意:判负环。

思路:SPFA模板题。

PS:抽个时间把SPFA写下这道题目。

Dijkstra做法:

#include<iostream>
#include<iomanip>
#include<string.h>
#include<set>
#include<stdio.h>
#include<queue>
#define inf 0x3f3f3f3f
using namespace std;

int u[7550],v[7550],w[7550],dis[7550];
int bak[2550];
int main()
{
//    std::ios::sync_with_stdio(false);
//    cin.tie(0);
//    cout.tie(0);
    int f,n,m,ww;
    cin>>f;
    while(f--)
    {
        cin>>n>>m>>ww;
        int aa,bb,cc;
        int p=1;
        for(int i=1; i<=m+ww; i++)
        {
            cin>>aa>>bb>>cc;
            if(i<=m)
            {
                u[p]=aa;
                v[p]=bb;
                w[p]=cc;
                p++;

                u[p]=bb;
                v[p]=aa;
                w[p]=cc;
                p++;
            }
            else
            {
                u[p]=aa;
                v[p]=bb;
                w[p]=-cc;
                p++;
            }
        }

        for(int i=1; i<=n; i++)
            dis[i]=inf;
        dis[1]=0;
        int check;
        for(int k=1; k<=n-1; k++)
        {
            check=0;
            for(int i=1; i<=m*2+ww; i++)
            {
                if(dis[v[i]]>dis[u[i]]+w[i])
                {
                    dis[v[i]]=dis[u[i]]+w[i];
                    check=1;
                }
            }
            if(check==0)
                break;
        }

        int flag=0;
        for(int i=1; i<=m*2+ww; i++)
        {
            if(dis[v[i]]>dis[u[i]]+w[i])
                flag=1;
        }
        if(flag)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
    }
    return 0;
}

POJ3259 - Wormholes - 判负环模板题

标签:namespace   bre   efi   flag   main   name   OLE   题意   题目   

原文地址:https://www.cnblogs.com/OFSHK/p/13174674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!