1. //判断负环 dist初始化为正无穷
  2. //正环 负无穷
  3. #include<iostream>
  4. #include<cstring>
  5. #include<queue>
  6. #include<algorithm>
  7. using namespace std;
  8. const int N = , M = ;
  9. int dist[N];
  10. int h[N], e[M], w[M], ne[M], idx;
  11. int n,m,z;
  12. void add(int a,int b,int c)
  13. {
  14. e[idx]=b;
  15. w[idx]=c;
  16. ne[idx]=h[a];
  17. h[a]=idx++;
  18. }
  19. bool st[N];
  20. int times[N];
  21. bool spfa()
  22. {
  23. memset(st,,sizeof st);
  24. memset(times,,sizeof times);
  25. queue<int>q;
  26. for(int i=;i<=n;i++)
  27. {
  28. q.push(i);
  29. st[i]=;
  30. times[i]++;
  31. }
  32. while(q.size())
  33. {
  34. int t=q.front();
  35. q.pop();
  36. st[t]=;
  37. for(int i=h[t];~i;i=ne[i])
  38. {
  39. int j=e[i];
  40. if(dist[j]>dist[t]+w[i])
  41. {
  42. dist[j]=dist[t]+w[i];
  43. if(!st[j])
  44. {
  45. st[j]=;
  46. q.push(j);
  47. times[j]++;
  48. if(times[j]>n)
  49. return true;
  50. }
  51. }
  52. }
  53. }
  54. return false;
  55. }
  56. int main()
  57. {
  58. int t,a,b,c;
  59. cin>>t;
  60. while(t--)
  61. {
  62. cin>>n>>m>>z;
  63. idx=;
  64. memset(h,-,sizeof h);
  65. memset(dist,0x3f,sizeof dist);
  66. for(int i=;i<=m;i++)
  67. {
  68. int a,b,c;
  69. cin>>a>>b>>c;
  70. add(a,b,c);
  71. add(b,a,c);
  72. }
  73. for(int i=;i<=z;i++)
  74. {
  75. int a,b,c;
  76. cin>>a>>b>>c;
  77. add(a,b,-c);
  78. }
  79. if(spfa())
  80. cout<<"YES"<<endl;
  81. else
  82. cout<<"NO"<<endl;
  83. }
  84. return ;
  85. }

Wormholes POJ - 3259 spfa判断负环的更多相关文章

  1. 解题报告:poj 3259 Wormholes(入门spfa判断负环)

    Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...

  2. poj 3259 (Bellman_Ford判断负环)

    题意:John的农场里n块地,m条路连接两块地,k个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts.我们的任务是知道会不会在从某块地出发后又回来,看到了离开之前的自己. 思路:虫洞 ...

  3. POJ 3259 Wormholes【最短路/SPFA判断负环模板】

    农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ...

  4. POJ 3259 Wormholes ( SPFA判断负环 && 思维 )

    题意 : 给出 N 个点,以及 M 条双向路,每一条路的权值代表你在这条路上到达终点需要那么时间,接下来给出 W 个虫洞,虫洞给出的形式为 A B C 代表能将你从 A 送到 B 点,并且回到 C 个 ...

  5. POJ3259 Wormholes(SPFA判断负环)

    Description While exploring his many farms, Farmer John has discovered a number of amazing wormholes ...

  6. Wormholes---poj3259(最短路 spfa 判断负环 模板)

    题目链接:http://poj.org/problem?id=3259 题意是问是否能通过虫洞回到过去: 虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts. 我们把虫洞看成是一条负权路,问 ...

  7. spfa判断负环

    会了spfa这么长时间竟然不会判断负环,今天刚回.. [例题]poj3259 题目大意:当农场主 John 在开垦他的农场时,他发现了许多奇怪的昆虫洞.这些昆虫洞是单向的,并且可以把你从入口送到出口, ...

  8. spfa 判断负环 (转载)

    当然,对于Spfa判负环,实际上还有优化:就是把判断单个点的入队次数大于n改为:如果总的点入队次数大于所有点两倍 时有负环,或者单个点的入队次数大于sqrt(点数)有负环.这样时间复杂度就降了很多了. ...

  9. Extended Traffic LightOJ - 1074 spfa判断负环

    //判断负环 在负环内的城市输出? #include <iostream> #include <queue> #include <cstdio> #include ...

随机推荐

  1. 第二篇 Springboot mybatis generate根据数据库表自动生成实体类、Mapper和Mapper.xml

    源码链接:https://pan.baidu.com/s/1iP4UguBufHbcIEv4Ux4wDw 提取码:j6z9 目录结构如下:只需增加一个generatorConfig.xml文件和在po ...

  2. 常用MySQL操作

    常用MySQL操作 更改MySQL数据库root的密码 将绝对路径加入环境变量并设置开机启动 # PATH=$PATH:/usr/local/mysql/bin # echo "PATH=$ ...

  3. 10分钟快速搭建可用的springboot-web项目

    搭建步骤 工具准备 1. IntelliJ IDEA(开发工具,简称idea) 2. JDK1.8+ 3. MAVEN 4. mysql(数据库) 5. redis(session储存) 创建步骤 S ...

  4. 【题解】 2月19日 厦门双十中学NOIP2014模拟D2 T1 采药人的切题规则

    Made by 退役的OIer 第一次写博客,写得不好 or 不清楚的可以 在下方留言,我会尽量改进的! 好啦~~~回到正题,题面见传送门 [问题描述] 采药人最近在认真切题,但回旋的转盘时常在眼前浮 ...

  5. Docker Stack 学习笔记

    该文为<深入浅出Docker>的学习笔记,感谢查看,如有错误,欢迎指正 一.简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理,提供了期望状态,滚动升级,简单易用,扩 ...

  6. Zabbix3.4使用详解

    zabbix-基础 第1章 关于zabbix 1.1 为什么要使用监控 1.对系统不间断实时监控2.实时反馈系统当前状态3.保证服务可靠性安全性4.保证业务持续稳定运行 1.2 如何进行监控 比如我们 ...

  7. P4735 最大异或和 /【模板】可持久化Trie

    //tire的可持久化 //线段树的可持久化——主席树 //可持久化的前提:本身的拓扑结构在操作时不变 //可以存下来数据结构的所有历史版本 //核心思想:只记录每一个版本与前一个版本不一样的地方 / ...

  8. LeetCode 面试题24. 反转链表

    题目链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/ 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点. ...

  9. Git 的 .gitignore 配置说明 (C#)

    1.配置语法: 以斜杠“/”开头表示目录: 以星号“*”通配多个字符: 以问号“?”通配单个字符 以方括号“[]”包含单个字符的匹配列表: 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录: 此外,g ...

  10. CSS操作

    CSS 与 JavaScript 是两个有着明确分工的领域,前者负责页面的视觉效果,后者负责与用户的行为互动.但是,它们毕竟同属网页开发的前端,因此不可避免有着交叉和互相配合. 1. 使用JavaSc ...