题目传送门

差分约束基础,对于每种关系建不同的边,求是否有负环。

code:

/**************************************************************
Problem: 3436
User: yekehe
Language: C++
Result: Accepted
Time:252 ms
Memory:10916 kb
****************************************************************/ #include <cstdio>
#include <vector>
#include <cstring>
using namespace std; char tc()
{
static char fl[],*A=fl,*B=fl;
return A==B&&(B=(A=fl)+fread(fl,,,stdin),A==B)?EOF:*A++;
} int read()
{
char c;while(c=getchar(),(c<'' || c>'') && c!='-');
int x=,y=;c=='-'?y=-:x=c-'';
while(c=getchar(),c>='' && c<='')x=x*+c-'';return x*y;
} const int MAXN=; int N,M;
int o,x,y,z;
int dist[MAXN],vis[MAXN];
bool flag;
vector < pair<int, int> > a[MAXN]; void cf_spfa(int x)
{
int to,val;
for(int i=;i<a[x].size();i++){
to=a[x][i].first;val=a[x][i].second;
if(dist[x]+val<dist[to]){
if(vis[to]){
flag=true;
return ;
}
else {
dist[to]=dist[x]+val;
vis[to]=;
cf_spfa(to);
}
}
}
vis[x]=false;
}//SPFA判负环 int main()
{
// freopen("x.txt","r",stdin);
N=read(),M=read();
for(int i=; i<=M; i++){
o=read();
if(o==) {x=read(),y=read(),z=read();a[y].push_back(make_pair(x,-z));}
if(o==) {x=read(),y=read(),z=read();a[x].push_back(make_pair(y,z));}
if(o==) {x=read(),y=read();a[x].push_back(make_pair(y,)),a[y].push_back(make_pair(x,));}
}//建边
for(int i=; i<=N; i++) {memset(dist,,sizeof(dist));cf_spfa(i);if(flag)break;}
if(flag)puts("No");
else puts("Yes");
return ;
}

最新文章

  1. Linux常用的日志分析命令与工具
  2. Mac显示隐藏文件的终端命令
  3. State Pattern -- 状态模式原理及实现(C++)
  4. 51nod1225 余数之和
  5. 英特尔&#174; 实感™ SDK 前置摄像头 (F200) 常见问题解答
  6. Linux - CentOS 6.3 (x86_64)安装过程详细图解
  7. 如何设置路由器实现静态IP配置
  8. Visual Studio 2015 开发MVC4出现错误
  9. Android 支付宝接入时常见的问题
  10. 如何搭建Visual Studio的内核编程开发环境
  11. 简易富文本编辑器bootstrap-wysiwyg源码注释
  12. 201521123053 《Java程序设计》第5周学习总结
  13. 轮播插件、原生js编写,弄懂这个,基本上各种轮播都可以自己写了
  14. Mego(06) - 关系数据库建模
  15. 从零開始学Xamarin.Forms(一) 概述
  16. Bootstrap 固定底部导航栏菜单
  17. 解决同一activity下多个fragment 切换时重复执行onCreateView方法
  18. Select2插件的隐藏、设置宽度
  19. Java移位运算符详解实例——左移位运算符&gt;&gt;、带符号的右移位运算符&gt;&gt;
  20. Github emoji 表情包大全

热门文章

  1. 小技巧:Mac下Metasploit渗透Oracle环境的搭建
  2. 类图(Rose) - Windows XP经典软件系列
  3. C/C++心得-面向对象
  4. Linux下安装Qt5.6.1
  5. Spring通过注解装配Bean
  6. HDU 1029 Ignatius and the Princess IV (map的使用)
  7. 对于dequeueReusableCellWithIdentifier:的理解
  8. js和jquery对象的相互转换
  9. 史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)
  10. Unity 游戏框架搭建 (十八) 静态扩展 + 泛型实现transform的链式编程