题目传送门

题目大意:有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. sysctl.conf学习和调优

    转载于简书:sysctl.conf学习和调优 ,如有版本问题,请联系我 前言 记得第一次接触/etc/security/limits.conf和/etc/sysctl.conf时是因为部署Oracle ...

  2. Thread-Specific-Storage for C/C++

    引用出处:https://www.cse.wustl.edu/~schmidt/PDF/TSS-pattern.pdf 摘要: 理论上多线程会提高程序性能,但实际上,由于在获取和释放锁的开销,多线程经 ...

  3. MySQL数据库----------小知识点

    **********************补2016年5月23日的博客************************* MySQL数据库 常用数据类型: int                整数 ...

  4. oracle 通配符及regexp_count函数说明

    通配符 通配符描述示例      %:匹配包含零个或更多字符的任意字符串.WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名.  ...

  5. 说说DBA职责和目标

    数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计.测试到部 ...

  6. Word中高效输入公式:内嵌公式和Mathtype

    Word中高效输入公式:内嵌公式和Mathtype 前言:对于理工科学生而言,公式输入必不可缺.LaTeX相比Word,在公式输入及排版方面更强大.但是对于轻量级的任务,用Word而言更加轻便(起码不 ...

  7. HDU 1275 两车追及或相遇问题(相遇和追及公式)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1275 两车追及或相遇问题 Time Limit: 2000/1000 MS (Java/Others) ...

  8. Android平台上PMEM的使用及Platform设备注册(一)

    Android中PMEM驱动程序是物理内存的驱动程序,可用于分配物理内存.PMEM在camera和video系统中频繁使用.下面,简单记录一下PMEM的使用方法.另外,由于PMEM设备做为Platfo ...

  9. Office365学习笔记—创建WikiPage

    1,项目有个需求:项目表每更新一次,就把跟该项目有关的任务创建一个静态页(历史版本功能)! 注意事项:需要在页面上拖一个ContentEditer!将代码放在ContentEditer里面,因为我试过 ...

  10. Kubernetes组件与架构

    转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...