题目描述:

Farmer John 在探索农场的时候 惊奇的发现一些虫洞,虫洞是一个特殊的东西,他是一个单向通道,他能到达虫洞的另一端, 可以穿越到达之前的时间。Farmer John 的由N个农场组成, 编号是 1-N, M条单向通道, W个虫洞。

Farmer John 是个时空穿越迷, 他想要做到一下几点: 开始在一些农场,旅行通过虫洞或者是路,通过虫洞能返回到他之前的时间。

帮助Farmer John  他是否有可能穿越到之前的时间, 他将会给你完整的地图, 他有F个农场, 走过这段路径的长度是小于10000秒的, 并且虫洞的穿越也是不会超过10000秒的

输入:

F代表测试实例的个数

第二行三个整数 N, M ,W 分别用空格隔开

接下来M行 是M个道路 ,道路是双向的。 S, E ,T 代表从S到E话费时间为T。

接下来W行 代表W个虫洞, 虫洞是单向, S, E, T,代表 从S 到 E 穿越的时间是 T。

题目分析:

他问你是否能穿越,其实就是问有无负权环。 直接SPFA 判断

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
#include <cmath>
#include <cstring>
using namespace std;
#define INF 0xfffffff
#define maxn 520
struct Edge
{
int e, w;
Edge(int e=,int w=) : e(e), w(w) {}
};
bool vis[maxn];
int use[maxn], dist[maxn];
int n, m, w;
vector<Edge> G[maxn]; void Init()
{
memset(vis,false,sizeof(vis));
for(int i=; i<=n; i++)
dist[i] = INF, use[i] = ;
}
bool Spfa(int Star)
{
Edge P, Pn;
queue<Edge> Q;
P.e = Star, P.w = ;
Q.push(P);
use[Star] = ;
dist[Star] = ; while( !Q.empty() )
{
P = Q.front();
Q.pop(); vis[P.e] = false; int len = G[P.e].size(); for(int i=; i<len; i++)
{
Pn = G[P.e][i]; if( dist[Pn.e] > dist[P.e] + Pn.w )
{
dist[Pn.e] = dist[P.e] + Pn.w; if( !vis[Pn.e] )
{
vis[Pn.e] = true;
Q.push(Pn);
use[Pn.e] ++; if(use[Pn.e] >= n && dist[Pn.e] < )
return true;
}
}
}
}
return false;
}
bool Slove()
{
for(int i=1; i<=n; i++)
{
Init(); if( Spfa(i) )
return true;
}
return false;
} int main()
{
int T;
cin >> T; while(T--)
{
cin >> n >> m >> w;
int a, b, c; for(int i=; i<=n; i++)
G[i].clear(); for(int i=; i<m; i++)
{
scanf("%d%d%d",&a,&b,&c); G[a].push_back( Edge(b,c) );
G[b].push_back( Edge(a,c) );
} for(int i=; i<w; i++)
{
scanf("%d%d%d",&a,&b,&c); G[a].push_back( Edge(b,-c) ); } if( Spfa(i) )
cout << "YES" << endl;
else
cout << "NO" << endl;
}
return ;
}

POJ Wormholes 3259的更多相关文章

  1. POJ No 3259 Wormholes Bellman-Ford 判断是否存在负图

    题目:http://poj.org/problem?id=3259 题意:主要就是构造图, 然后判断,是否存在负图,可以回到原点 /* 2 3 3 1 //N, M, W 1 2 2 1 3 4 2 ...

  2. 【POJ】3259 Wormholes

    题目链接:http://poj.org/problem?id=3259 题意:n个农场,m条双向路径,w条单向路径(虫洞).单向虫洞路径是负值.农夫想知道自己能不能看到自己(X). 题解:其实刚开始没 ...

  3. POJ Wormholes (SPFA)

    http://poj.org/problem?id=3259 Description While exploring his many farms, Farmer John has discovere ...

  4. POJ 1860&&3259&&1062&&2253&&1125&&2240

    六道烦人的最短路(然而都是水题) 我也不准备翻译题目了(笑) 一些是最短路的变形(比如最长路,最短路中的最长边,判环),还有一些就是裸题了. 1860:找环,只需要把SPFA的松弛条件改一下即可,这里 ...

  5. ACM: POJ 3259 Wormholes - SPFA负环判定

     POJ 3259 Wormholes Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu   ...

  6. 最短路(Bellman_Ford) POJ 3259 Wormholes

    题目传送门 /* 题意:一张有双方向连通和单方向连通的图,单方向的是负权值,问是否能回到过去(权值和为负) Bellman_Ford:循环n-1次松弛操作,再判断是否存在负权回路(因为如果有会一直减下 ...

  7. POJ 3259 Wormholes (Bellman_ford算法)

    题目链接:http://poj.org/problem?id=3259 Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submis ...

  8. poj 3259 Wormholes

    题目连接 http://poj.org/problem?id=3259 Wormholes Description While exploring his many farms, Farmer Joh ...

  9. poj - 3259 Wormholes (bellman-ford算法求最短路)

    http://poj.org/problem?id=3259 农夫john发现了一些虫洞,虫洞是一种在你到达虫洞之前把你送回目的地的一种方式,FJ的每个农场,由n块土地(编号为1-n),M 条路,和W ...

随机推荐

  1. OpenGL蓝宝书第五章代码勘误以及惯性坐标系去解释模型变换:Pyramid.cpp

    假设你也发现依照教程代码完毕贴图时,你会底面的坐标和寻常顶点坐标正负相反,比方-1.0f, -1.0f, -1.0f这个顶点相应的却是世界坐标中1.0f,-1.0f,1.0f 问题到底出如今哪里? 原 ...

  2. NETSH WINSOCK RESET这条命令的含义和作用?

    简单来说netsh winsock reset命令含义是重置 Winsock 文件夹.假设一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就须要用netsh winsock res ...

  3. [转] linux下的c/c++调试器gdb

    PS:1. 断点C++类函数,用b 命名空间::类名::方法名 2. 编译参数一定要加-g,才可断点调试 http://www.cnblogs.com/xd502djj/archive/2012/08 ...

  4. iOS开发系列之远程控制事件

    在今天的文章中还剩下最后一类事件:远程控制,远程控制事件这里主要说的就是耳机线控操作.在前面的事件列表中,大家可以看到在iOS中和远程控制事件有关的只有一个- (void)remoteControlR ...

  5. Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.(转)

    1.程序运行后异常显示: 解决方案:在项目上点击右键->properties->Java Build Path, remove掉Android Dependences即可

  6. Android(java)学习笔记214:开源框架的文件上传(只能使用Post)

    1.文件上传给服务器,服务器端必然要写代码进行支持,如下: 我们新建一个FileUpload.jsp的动态网页,同时我们上传文件只能使用post方式(不可能将上传数据拼凑在url路径下),上传数据Ap ...

  7. codevs 1128 导弹拦截 (贪心)

    /* 题目大体意思是两套系统好多导弹 怎样分配使得两个系统所拦截的最大半径之和最小 贪心:把距离1系统最远的 让2拦截 记好距离 然后按照距离1由远到近排序 对于每一个导弹 如果这之前的都给2拦截 则 ...

  8. 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用

    最近在看关于Docker和Nginx方面的内容,先于在Docker上开发以及部署python应用自然要先能够在本机上部署,其中找到一篇文章写的最为详细并且实验成功,所以在此翻译转载过来以备后需.[原文 ...

  9. 开发solr功能问题点

    Criteria criteria = new Criteria(); public Criteria and(Criteria criteria) { this.criteriaChain.add( ...

  10. jquery动画总结

    基本动画 show() //直接显示元素,没有动画 show(speed, [callback]) //有动画,有回调函数 hide() //直接隐藏元素,没有动画 hide(speed, [call ...