Code:

#include<cstdio>
#include<queue>
using namespace std;
const int N=10000+233;
const int INF=10000000;
int head[N],to[N<<1],nex[N<<1],val[N<<1],vis[N],d[N];
int cnt;
void add_edge(int u,int v,int c)
{
nex[++cnt]=head[u],head[u]=cnt;
to[cnt]=v,val[cnt]=c;
}
int spfa(int u)
{
vis[u]=1;
for(int v=head[u];v;v=nex[v])
{
int x=to[v];
if(d[u]+val[v]<d[x])
{
d[x]=d[u]+val[v];
if(vis[x]==1)return 0;
if(spfa(x)==0)return 0;
}
}
vis[u]=0;
return 1;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)d[i]=INF;
for(int i=1;i<=m;++i)
{
int Ty,a,b,c;
scanf("%d%d%d",&Ty,&a,&b);
if(Ty!=3)scanf("%d",&c);
if(Ty==1)
add_edge(a,b,-c);
if(Ty==2)
add_edge(b,a,c);
if(Ty==3)
{
c=0;
add_edge(b,a,c);
add_edge(a,b,-c);
}
}
int ans=1;
for(int i=1;i<=n;++i)
{
if(vis[i]==0)
if(!spfa(i))
{
ans=0;break;
}
}
if(ans==0)printf("No");
else printf("Yes");
return 0;
}

  

最新文章

  1. HTML5打造的炫酷本地音乐播放器-喵喵Player
  2. git的配置
  3. C#的参数修饰符out,params,ref
  4. [Html5]sessionStorage和localStorage常见操作
  5. TfS+强制删除签出锁定项
  6. 124. Binary Tree Maximum Path Sum
  7. poj 1016 Numbers That Count
  8. mybatis源码学习: 编译的方法
  9. c#代码使用ResourceDictionary样式
  10. Python自动化运维之20、HTML
  11. [Python笔记][第一章Python基础]
  12. 内容中断随想录(risc cpu的那些事)
  13. apache 做负载
  14. 对象this的引用
  15. [field:softlinks/]逻辑过程
  16. js—双等号引起的类型转换过程
  17. Autofac之依赖注入
  18. 【MySQL】InnoDB 内存管理机制 --- Buffer Pool
  19. HTTP Method小结
  20. python自动化开发-5a

热门文章

  1. 百度之星2014复赛 - 1001 - Find Numbers
  2. swift 笔记 (十四) —— 构造过程
  3. _DataStructure_C_Impl:基数排序
  4. Coco2d-js/Cocos2d-html5中Android返回键实现
  5. 关于SharePoint讨论板的一些知识(2)--视图中的栏目
  6. nexus启动报错-----&gt;错误 1067: 进程意外终止。
  7. Swift - 将String类型的数字转换成数字类型(支持十进制、十六进制)
  8. DNS隧道工具使用 不过其网络传输速度限制较大
  9. Spring版本功能变更&amp;Spring4.x的新特性
  10. 2017-3-10 leetcode 229 238 268