题意:给m条路(S,E,T)代表点S、E之间双向边权重为T,紧接着给W个虫洞(S,E,T)代表S到E的有向边可以回到T秒前即权重为-T,问能不能通过虫洞看到看到初始的自己,即能不能回到初始点所在的时间点之前,即求是否存在负环。

代码细节就不多赘述了,spfa

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;const int maxn = 500 + 5;
const int maxm = 3000 + 5;
const int inf = 0x3f3f3f3f;
int n, m, f, t, dis[maxn], inq[maxn];
int head[maxn], tot;
bool vis[maxn];
struct edge{int to, w, next;
} ed[maxm*2];
inline void add( int u, int v, int w ){ed[tot].to = v;ed[tot].w = w;ed[tot].next = head[u];head[u] = tot ++;
}inline bool spfa(){queue<int> q;memset( vis, 0, sizeof(vis) );memset( inq, 0, sizeof(inq) );memset( dis, inf, sizeof(dis) );dis[1] = 0;vis[1] = 1;q.push(1);while( !q.empty() ){int u = q.front();q.pop();vis[u] = 0;if( ++inq[u]>=n ) return 1;for( int i=head[u]; i!=-1; i=ed[i].next ){int v = ed[i].to;if( dis[v]>dis[u]+ed[i].w ){dis[v] = dis[u]+ed[i].w;if( !vis[v] ){vis[v] = 1;q.push(v);}}}}return 0;
}int main(){// freopen("in.txt", "r", stdin);cin >> f;while( f-- ){memset( head, -1, sizeof(head) );tot = 0;cin >> n >> m >> t;for( int i=0; i<m; i++ ){int u, v, w;cin >> u >> v >> w;add( u, v, w );add( v, u, w );}for( int i=0; i<t; i++ ){int u, v, w;cin >> u >> v >> w;add( u, v, -w );}if( spfa() ) puts("YES");else puts("NO");}return 0;
}

转载于:https://www.cnblogs.com/WAautomaton/p/10947190.html

poj3259 Wormholes(spfa判负环)相关推荐

  1. POJ 3259 Wormholes SPFA判负环

    思路:SPFA判负环 数组不要开太小-- (后面附一组测试数组) // by SiriusRen #include <queue> #include <cstdio> #inc ...

  2. poj 2049(二分+spfa判负环)

    poj 2049(二分+spfa判负环) 给你一堆字符串,若字符串x的后两个字符和y的前两个字符相连,那么x可向y连边.问字符串环的平均最小值是多少.1 ≤ n ≤ 100000,有多组数据. 首先根 ...

  3. [APIO2017]商旅——分数优化+floyd+SPFA判负环+二分答案

    题目链接: [APIO2017]商旅 枚举任意两个点$(s,t)$,求出在$s$买入一个物品并在$t$卖出的最大收益. 新建一条从$s$到$t$的边,边权为最大收益,长度为原图从$s$到$t$的最短路 ...

  4. dfs版SPFA判负环

    例题 Description 泡泡鱼是一条调皮的鱼,ta的家住在一片珊瑚礁上.在ta的眼里,这些珊瑚礁的形态可以脑补成一个n个节点,m条边的带权图,在海水的腐蚀下,这些珊瑚礁形成了许多的环,ta想考考 ...

  5. 【2019icpc南京站网络赛 - H】Holy Grail(最短路,spfa判负环)

    题干: As the current heir of a wizarding family with a long history,unfortunately, you find yourself f ...

  6. BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)

    BZOJ 差分约束: 我是谁,差分约束是啥,这是哪 太真实了= = 插个广告:这里有差分约束详(并不)解. 记\(r_i\)为第\(i\)行整体加了多少的权值,\(c_i\)为第\(i\)列整体加了多 ...

  7. 天路(01规划+SPFA判负环)

    传送门 公式图片来自洛谷题解 因为求V之和与P之和的比值的最大值.这个值不超过200 考虑到二分答案,设ans为最大值,则有 可以看出是01分数规划 那么每次就重新分配边的权值: ans*ci-vi ...

  8. 【POJ-3259】 Wormholes(判负环,spfa算法)

    题干: While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A worm ...

  9. bzoj 1690: [Usaco2007 Dec]奶牛的旅行——分数规划+spfa判负环

    Description 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天.旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇. 很幸运地,奶牛们找到了一张详细的城 ...

最新文章

  1. 属性字符串(富文本)的使用
  2. JSP实现网上招标系统
  3. Dialog的使用(二):AlertDialog.setItems
  4. c语言程序设计教程 实验十,清华大学出版社-图书详情-《C语言程序设计实验教程》...
  5. 【计算机系统结构】第一周 课上笔记
  6. mysql导到相对位置_MySQL数据备份与恢复
  7. mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap...
  8. linux 创建一个垃圾篓防误删及其误删文件恢复
  9. 配置文件是什么东西?
  10. c# post 读取返回html_PHP GET与POST
  11. 关键词组合工具-自动关键词挖掘组成关键词软件免费
  12. 阿里邮箱怎么开通pop3服务器,云邮箱如何在IPAD上设置POP3/IMAP协议?
  13. EDA设计流程是怎样的,看完这篇文章就知道了
  14. mysql事务锁死解决
  15. java itext pdf 添加页码
  16. 1336A - Linova and Kingdom
  17. Google浏览器怎么导入证书
  18. Redis原理以及底层数据结构初探
  19. 对实际电流源中内阻变化的简单分析
  20. 用Xftp和Xshell本地链接华为云主机

热门文章

  1. android 相对布局例子代码
  2. sql语句 isnull(列名,'')='' /STUFF的意思
  3. mysql练习题练习
  4. train problem I (栈水题)
  5. 迭代器之输入和输出迭代器
  6. 文件读写'r'和'rb'区别
  7. 【python】for..range练习 与函数的练习题
  8. java并发编程:设计原则与模式_java编程设计模式一——策略模式
  9. c++取临时文件夹_电脑C盘不足?学会删除这5个文件夹,能节省10G空间
  10. 面板数据回归模型(固定效应、随机效应、混合回归、变系数)、面板数据AR、VAR模型