#include<stdio.h>
#include<string.h>
#include<limits.h>
#include<queue>
using namespace std;
#define N 5505
#define M 55000//注意边和点集的数组大小
struct edge
{
int to,value,next;
}edges[M];
int heads[N],len=;
int addedge(int u,int v,int w)
{
edges[len].to=v,edges[len].value=w,edges[len].next=heads[u];
heads[u]=len++;
return ;
}
int n,m; int spfa(int v)
{
queue<int> q;
int inqueue[N],dis[N];
memset(inqueue,,sizeof(inqueue)),inqueue[v]=;
q.push(v);
for(int i=;i<n;i++) dis[i]=INT_MAX;
dis[v]=;
int times[N];
memset(times,,sizeof(times)),times[v]=; while(!q.empty()){
int x=q.front();
q.pop();
inqueue[x]=;
for(int j=heads[x];j!=-;j=edges[j].next){
int to=edges[j].to,value=edges[j].value;
if(value+dis[x]<dis[to]){
dis[to]=value+dis[x];
if(!inqueue[to]){ //注意已经在队列里面的不用再加入队列
if(++times[to]>=n) return ;
inqueue[to]=,q.push(to);
}
}
}
}
return ;
}
int main(void)
{
int i,j,t;
int a,b,c;
scanf("%d",&t);
while(t--){
int w;
memset(heads,-,sizeof(heads));//注意不要忘记
scanf("%d%d%d",&n,&m,&w);
while(m--){
scanf("%d%d%d",&a,&b,&c);
addedge(a-,b-,c);
addedge(b-,a-,c); }
while(w--){
scanf("%d%d%d",&a,&b,&c);
addedge(a-,b-,-c);
}
if(!spfa()) printf("YES\n");
else printf("NO\n");
} }

poj 3259Wormholes (spfa最短路径)的更多相关文章

  1. poj 3259-- Wormholes(SPFA)

                                                                                                         ...

  2. poj 1511(spfa)

    ---恢复内容开始--- http://poj.org/problem?id=1511 一个spfa类的模板水题. 题意:就是求从1到n个点的来回的所有距离和. 对spfa类的题还是不太熟练,感觉还是 ...

  3. poj 3268(spfa)

    http://poj.org/problem?id=3268 对于这道题,我想说的就是日了狗了,什么鬼,定义的一个数值的前后顺序不同,一个就TLE,一个就A,还16MS. 感觉人生观都奔溃了,果然,题 ...

  4. Poj(2679),SPFA,邻接表(主流写法)

    题目链接:http://poj.org/problem?id=3268 题意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求 ...

  5. poj 1511(SPFA+邻接表)

    题目链接:http://poj.org/problem?id=1511 思路:题目意思很简单就是要求源点到各点的最短路之和,然后再求各点到源点的最短路之和,其实就是建两个图就ok了,其中一个建反图.1 ...

  6. spfa最短路径

    C++代码 #include <iostream> #include <deque> #include <stack> #include <vector> ...

  7. poj 1932 XYZZY (最短路径)

    XYZZY Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3105   Accepted: 887 Description ...

  8. Invitation Cards POJ 1511 SPFA || dij + heap

    http://poj.org/problem?id=1511 求解从1去其他顶点的最短距离之和. 加上其他顶点到1的最短距离之和. 边是单向的. 第一种很容易,直接一个最短路, 然后第二个,需要把边反 ...

  9. POJ - 3255 SPFA+邻接表求次短路径

    题意:给出m条边 , n个顶点,u [ i ]到v [ i ] 的距离w [ i ],求除了最短路的那条最短的边的长度. 思路:之前有做过相似的题,使用迪杰斯特拉算法求单源最短路径,并且记录路径,枚举 ...

随机推荐

  1. MYSQL 关闭服务的过程

    服务器关闭进程可以概括为: 1.    启动关闭进程 2.    服务器根据需要创建关闭线程 3.    服务器停止接收新连接 4.    服务器终止当前的活动 5.    存储引擎被停掉或关闭 6. ...

  2. 项目中引用ThinkPHP框架

    ThinkPHP是一个宽度.兼容且简单的国产的轻量级框架,具有优良的性能,并且非常注重易用性. 那么,我们该如何将ThinkPHP引入自己的项目中,使得自己的项目可以使用这款优良的框架呢? 首先介绍下 ...

  3. sql like 通配符 模糊查询技巧及特殊字符

    最近碰到like模糊匹配的问题,找到一些答案接触迷惑,觉得有知识是自己忽略的,现在整理出来,既强化记忆,又是一次记录,以下转自一篇Blog,关于sql server like的通配符和字符带通配符的处 ...

  4. java.sql.ResultSetMetaData.getColumnLabel和getColumnName的区别

    如果将ResultSet的结果映射到HashMap中,要使用getColumnLabel,而不要用getColumnName,这样可提高程序的健壮性 理由: getColumnName返回的是sql语 ...

  5. nodejs运用passport和passport-local分离本地登录

    var express = require('express'); var cookieParser = require('cookie-parser'); var bodyParser = requ ...

  6. SPOJ QTREE4 lct

    题目链接 这个题已经处于花式tle了,改版后的spoj更慢了.. tle的话就多交几把... #include <iostream> #include <fstream> #i ...

  7. bp神经网络及matlab实现

    本文主要内容包含: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 . 第0节.引例  本文以Fisher的Iris数据集 ...

  8. JS 人民币大写

    /***** HongShijin** Me@HongShijin.com** 2014-10-15 9:13:00.00000** text/javascript***/ (function ($) ...

  9. Python下载Bing主页图片

    直接上代码: # -*- coding: cp936 -*- import urllib import os print 'Download data......' url = 'http://cn. ...

  10. javascript how sort() work

    Array.prototype.sort() 方法一般用来对数组中的元素进行排序,既可以对数字排序,也可以对字符串进行排序.如果没有指定比较函数,会根据数组中字符的Unicode编码来进行排序.这对于 ...