poj3259 Wormholes(spfa判负环)
题意:给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判负环)相关推荐
- POJ 3259 Wormholes SPFA判负环
思路:SPFA判负环 数组不要开太小-- (后面附一组测试数组) // by SiriusRen #include <queue> #include <cstdio> #inc ...
- poj 2049(二分+spfa判负环)
poj 2049(二分+spfa判负环) 给你一堆字符串,若字符串x的后两个字符和y的前两个字符相连,那么x可向y连边.问字符串环的平均最小值是多少.1 ≤ n ≤ 100000,有多组数据. 首先根 ...
- [APIO2017]商旅——分数优化+floyd+SPFA判负环+二分答案
题目链接: [APIO2017]商旅 枚举任意两个点$(s,t)$,求出在$s$买入一个物品并在$t$卖出的最大收益. 新建一条从$s$到$t$的边,边权为最大收益,长度为原图从$s$到$t$的最短路 ...
- dfs版SPFA判负环
例题 Description 泡泡鱼是一条调皮的鱼,ta的家住在一片珊瑚礁上.在ta的眼里,这些珊瑚礁的形态可以脑补成一个n个节点,m条边的带权图,在海水的腐蚀下,这些珊瑚礁形成了许多的环,ta想考考 ...
- 【2019icpc南京站网络赛 - H】Holy Grail(最短路,spfa判负环)
题干: As the current heir of a wizarding family with a long history,unfortunately, you find yourself f ...
- BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)
BZOJ 差分约束: 我是谁,差分约束是啥,这是哪 太真实了= = 插个广告:这里有差分约束详(并不)解. 记\(r_i\)为第\(i\)行整体加了多少的权值,\(c_i\)为第\(i\)列整体加了多 ...
- 天路(01规划+SPFA判负环)
传送门 公式图片来自洛谷题解 因为求V之和与P之和的比值的最大值.这个值不超过200 考虑到二分答案,设ans为最大值,则有 可以看出是01分数规划 那么每次就重新分配边的权值: ans*ci-vi ...
- 【POJ-3259】 Wormholes(判负环,spfa算法)
题干: While exploring his many farms, Farmer John has discovered a number of amazing wormholes. A worm ...
- bzoj 1690: [Usaco2007 Dec]奶牛的旅行——分数规划+spfa判负环
Description 作为对奶牛们辛勤工作的回报,Farmer John决定带她们去附近的大城市玩一天.旅行的前夜,奶牛们在兴奋地讨论如何最好地享受这难得的闲暇. 很幸运地,奶牛们找到了一张详细的城 ...
最新文章
- 属性字符串(富文本)的使用
- JSP实现网上招标系统
- Dialog的使用(二):AlertDialog.setItems
- c语言程序设计教程 实验十,清华大学出版社-图书详情-《C语言程序设计实验教程》...
- 【计算机系统结构】第一周 课上笔记
- mysql导到相对位置_MySQL数据备份与恢复
- mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap...
- linux 创建一个垃圾篓防误删及其误删文件恢复
- 配置文件是什么东西?
- c# post 读取返回html_PHP GET与POST
- 关键词组合工具-自动关键词挖掘组成关键词软件免费
- 阿里邮箱怎么开通pop3服务器,云邮箱如何在IPAD上设置POP3/IMAP协议?
- EDA设计流程是怎样的,看完这篇文章就知道了
- mysql事务锁死解决
- java itext pdf 添加页码
- 1336A - Linova and Kingdom
- Google浏览器怎么导入证书
- Redis原理以及底层数据结构初探
- 对实际电流源中内阻变化的简单分析
- 用Xftp和Xshell本地链接华为云主机
热门文章
- android 相对布局例子代码
- sql语句 isnull(列名,'')='' /STUFF的意思
- mysql练习题练习
- train problem I (栈水题)
- 迭代器之输入和输出迭代器
- 文件读写'r'和'rb'区别
- 【python】for..range练习 与函数的练习题
- java并发编程:设计原则与模式_java编程设计模式一——策略模式
- c++取临时文件夹_电脑C盘不足?学会删除这5个文件夹,能节省10G空间
- 面板数据回归模型(固定效应、随机效应、混合回归、变系数)、面板数据AR、VAR模型