题目传送门

题目大意:有F组数据,N表示有N点,M表示有M条边,走一遍边需要花费Ti个时间,还有W个虫洞,可以向前回溯Ti时间,求能否从1点出发,经过一些路或虫洞回到1点后时间为负。

建图后用SPFA判负环即可。

code:

#include <cstdio>
#include <cstring>
using namespace std; int read()
{
char c;while(c=getchar(),c<''||c>'');
int x=c-'';while(c=getchar(),c>=''&&c<='')x=x*+c-'';
return x;
} int T;
int N,M,W;
int x,y,c; struct list{
int head[],nxt[],To[],W[],cnt;
void fc(){memset(head,-,sizeof head);memset(nxt,-,sizeof nxt);cnt=;} void add(int x,int y,int c)
{
W[cnt]=c;To[cnt]=y;
nxt[cnt]=head[x];
head[x]=cnt;
cnt++;
}
}MP; bool flag;
int dist[],vis[];
void SPFA(int now)
{
if(flag)return ;
vis[now]=;
for(int i=MP.head[now];i!=-;i=MP.nxt[i]){
if(dist[now]+MP.W[i]<dist[MP.To[i]]){
if(vis[MP.To[i]]){flag=true;return ;}
dist[MP.To[i]]=dist[now]+MP.W[i];
vis[MP.To[i]]=;SPFA(MP.To[i]);
}
}
vis[now]=;
return ;
} int main()
{
T=read();
register int i,j;
while(T--){
N=read(),M=read(),W=read();
MP.fc();
for(i=;i<=M;i++){
x=read(),y=read(),c=read();
MP.add(x,y,c);
MP.add(y,x,c);
}
for(i=;i<=W;i++){
x=read(),y=read(),c=read();
MP.add(x,y,-c);
}
memset(vis,,sizeof vis);memset(dist,,sizeof dist);dist[]=;
flag=;SPFA();
if(flag)puts("YES");
else puts("NO");
}
}

POJ3259_Wormholes_KEY的更多相关文章

随机推荐

  1. 名词后变为复数+s,或者+es等怎么读

    , 以ce,se,ze, (d)ge等结尾的词 加 -s 读 /iz/ license-licenses, office offices 最佳答案1: 当名词后加-e(-es)变成复数,动词单数第三人 ...

  2. 理解Underscore中的节流函数

    上一篇中讲解了Underscore中的去抖函数(_.debounced),这一篇就来介绍节流函数(_.throttled). 经过上一篇文章,我相信很多人都已经了解了去抖和节流的概念.去抖,在一段连续 ...

  3. PAT-GPLT L3-017 森森快递(贪心 + 线段树)

    链接: https://www.patest.cn/contests/gplt/L3-017 题意: 给出直线上的N个顶点,(N-1)条边的限制值(每对相邻的顶点之间都有一条边),以及Q个区间(给出起 ...

  4. 汇编试验四:[bx] 和 loop 的使用

    预备知识: 段前缀的使用: ffff:0~ffff:b 和 0020:0~0020:b 的数据: 一次循环的复制效果: 但是,这种方式DS的数据得修改: Source Code: assume cs: ...

  5. 【2^k进制数】

    发现自己推得组合数好像不太一样 先把这个复杂的柿子写一遍 \[\sum_{i=2}^{\left \lfloor\frac{n}{k}\right \rfloor}C_{2^k-1}^{i}+\sum ...

  6. PHP------文件------文件整体操作

    文件整体操作 [1]创建文件 touch("路径");   touch("./test.docx");//当前路径创建文件,创建的文档 显示的结果: touch ...

  7. PHP不定维数组去除空值

    最近遇到一个问题,是将不定维数组的空值去除,回来研究了一下,写出来了,不知道是否还能优化 写的不好的,如果有好的想法或者好的实现方法,欢迎提出来,如果哪里写错了,也欢迎大牛可以讲解一下 代码如下,欢迎 ...

  8. Gradle Goodness: Working with Live Task Collection

    Gradle support the definition of so called live collections. These collections are mostly created ba ...

  9. SSH工具脚本录入

    SSH工具提供的脚本录制功能如下: Xshell:登陆脚本 SecretCRT:录制脚本,保存本地,登陆后选择执行 mRemoteNG :暂时没发现有脚本录入功能

  10. 【oracle】关于创建表时用default指定默认值的坑

    刚开始学create table的时候没注意,学到后面发现可以指定默认值.于是写了如下语句: 当我查询的时候发现,查出来的结果是这样的.. 很纳闷有没有,我明明指定默认值了呀,为什么创建出来的表还是空 ...