题目传送门

题目大意:有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. [零基础学pythyon]安装python编程环境

    不论什么高级语言都是须要一个自己的编程环境的,这就好比写字一样,须要有纸和笔,在计算机上写东西.也须要有文字处理软件,比方各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件.总 ...

  2. PHP单链表的基本操作

    链表的实现 数据结构第一个就是链表了,链表分为两种有直接的数组形式的顺序链,这里不讨论,什么array_push(),array_pop(),函数基本能满足日常的需求,但报告老板,我就是想装个X 上代 ...

  3. javascript-数字转罗马数字

    阿拉伯数字与罗马数字转换 罗马数字表示 XXI, 21 个位数举例I, 1 ]II, 2] III, 3] IV, 4 ]V, 5 ]VI, 6] VII, 7] VIII,8 ]IX, 9 ·十位数 ...

  4. 正则表达式和decimal format的实际项目运用

    最近review测试框架底层代码,一是看看有哪些可以重构的,以便减少冗余增加重用,二是优化一下代码结构增强代码的健壮性. 其中有一个地方印象比较深刻,特记录分享如下: 背景:在电商场景中,价格是特别重 ...

  5. Google File System设计方面的问题汇总

    1.Google File System概述 google file system是一个分布式文件系统,针对的是数据密集型应用,提供容错功能,运行在低廉的服务器上,同时给大量的用户提供高性能服务.尽管 ...

  6. WinFrom开发小案例

    C# 开发环境: VisualStudio2015 数据库: SQLserver2008 程序主界面: 注释: lbl标签: 程序中的lbl标签:编号.人数.姓名.性别.请输入要查询的信息,这里他们只 ...

  7. Flex布局(一)flex-direction

    采用Flex布局的元素,被称为Flex容器(flex container),简称"容器".其所有子元素自动成为容器成员,成为Flex项目(Flex item),简称"项目 ...

  8. 课时8.HTML作用(掌握)

    什么是HTML? HTML其实是HyperText Markup Language的缩写,超文本标记语言 如何重命名文件? 点击右键重命名 点击F2 首先利用记事本保存了一个标题和两段描述,然后修改纯 ...

  9. 入门——Bootstrap栅格系统

    作为刚接触到Bootstrap框架的新手一枚,刚开始对Bootstrap中的栅格系统一脸懵逼,后来经过反复的上网查找资料以及自己一直在练习,总算对栅格系统了解个差不多,所以我将我所了解的当成是日记写下 ...

  10. window 下创建软链接 mklink

    软链接是一种文件共享方式. 命令:mklink /d "C:\d" "C:\e" 有哪些坑: 1.此命名必须以管理员方式在cmd运行 2.文件必须不存在..通过 ...