poj 3259Wormholes (spfa最短路径)
#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最短路径)的更多相关文章
- poj 3259-- Wormholes(SPFA)
...
- poj 1511(spfa)
---恢复内容开始--- http://poj.org/problem?id=1511 一个spfa类的模板水题. 题意:就是求从1到n个点的来回的所有距离和. 对spfa类的题还是不太熟练,感觉还是 ...
- poj 3268(spfa)
http://poj.org/problem?id=3268 对于这道题,我想说的就是日了狗了,什么鬼,定义的一个数值的前后顺序不同,一个就TLE,一个就A,还16MS. 感觉人生观都奔溃了,果然,题 ...
- Poj(2679),SPFA,邻接表(主流写法)
题目链接:http://poj.org/problem?id=3268 题意: 有编号为1-N的牛,它们之间存在一些单向的路径.给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求 ...
- poj 1511(SPFA+邻接表)
题目链接:http://poj.org/problem?id=1511 思路:题目意思很简单就是要求源点到各点的最短路之和,然后再求各点到源点的最短路之和,其实就是建两个图就ok了,其中一个建反图.1 ...
- spfa最短路径
C++代码 #include <iostream> #include <deque> #include <stack> #include <vector> ...
- poj 1932 XYZZY (最短路径)
XYZZY Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3105 Accepted: 887 Description ...
- Invitation Cards POJ 1511 SPFA || dij + heap
http://poj.org/problem?id=1511 求解从1去其他顶点的最短距离之和. 加上其他顶点到1的最短距离之和. 边是单向的. 第一种很容易,直接一个最短路, 然后第二个,需要把边反 ...
- POJ - 3255 SPFA+邻接表求次短路径
题意:给出m条边 , n个顶点,u [ i ]到v [ i ] 的距离w [ i ],求除了最短路的那条最短的边的长度. 思路:之前有做过相似的题,使用迪杰斯特拉算法求单源最短路径,并且记录路径,枚举 ...
随机推荐
- 利用新版ShareSDK进行手动分享(自定义分享界面)
之前有用过Share SDK进行快捷分享,可是官方demo中的快捷分享的界面已经设置死了,而公司的产品又设计了自己的分享界面,这就需要我进行手动分享了.当前ShareSDK版本是2.5.4. 看了一堆 ...
- visual leak dector内存泄漏检测方法
http://vld.codeplex.com/ QT 内存泄露时,你们一般用什么工具检测啊 ------解决方案--------------------这篇你觉得详细么 :http://newfac ...
- Xcode 3.2.5免证书开发调试
Xcode 3.2.5免证书开发调试 xcode3.2.5 应该没人用了.这里做个保存而已. Xcode编译遇到过 Code Sign error: a valid provisioning prof ...
- Java程序员快速入门Go语言
这篇文章帮助Java程序员快速入门Go语言. 转载至 开源中国社区. http://www.oschina.net 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将 ...
- 发布MFC ActiveX控件并实现自动更新
一. 引言 上一篇我们讲了如何使用 VC 2005来开发 MFC ActiveX控件,我们开发 ActiveX控件最终目的是将 ActiveX控件发布出来并嵌入在 Web网页中,随着控件 ...
- python 读取utf8文件
有时候默认是gbk编码,但是要读取utf8文件,所以会出现decode 错误. 使用codecs模块: import codecs file = codecs.open('filename','r', ...
- libvirt python binding 变成了一个新项目了。
http://libvirt.org/git/ $ git clone git://libvirt.org/libvirt-python.git 2013年的事情了. $ git show a7a12 ...
- 面向对象程序设计-C++_课时14对象组合_课时15继承
对象组合,就是一个类的对象作为另外一个类的成员,涉及类的对象,对象是实体,玩实 继承,涉及类,类是概念,玩虚 public: 所有人都可以接触 private: 数据放private protecte ...
- javascript原生ajax;
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- html学习笔记一
学习了一天,总结巩固下自己收获. html是超文本标记语言,而不是编程语言. 1:html结构 包含html标签,head标签,title标签,body标签. <html> <hea ...