BZOJ3436_小K的农场_KEY
2024-10-05 20:04:42
差分约束基础,对于每种关系建不同的边,求是否有负环。
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 ;
}
最新文章
- Linux常用的日志分析命令与工具
- Mac显示隐藏文件的终端命令
- State Pattern -- 状态模式原理及实现(C++)
- 51nod1225 余数之和
- 英特尔&#174; 实感™ SDK 前置摄像头 (F200) 常见问题解答
- Linux - CentOS 6.3 (x86_64)安装过程详细图解
- 如何设置路由器实现静态IP配置
- Visual Studio 2015 开发MVC4出现错误
- Android 支付宝接入时常见的问题
- 如何搭建Visual Studio的内核编程开发环境
- 简易富文本编辑器bootstrap-wysiwyg源码注释
- 201521123053 《Java程序设计》第5周学习总结
- 轮播插件、原生js编写,弄懂这个,基本上各种轮播都可以自己写了
- Mego(06) - 关系数据库建模
- 从零開始学Xamarin.Forms(一) 概述
- Bootstrap 固定底部导航栏菜单
- 解决同一activity下多个fragment 切换时重复执行onCreateView方法
- Select2插件的隐藏、设置宽度
- Java移位运算符详解实例——左移位运算符>;>;、带符号的右移位运算符>;>;
- Github emoji 表情包大全
热门文章
- 小技巧:Mac下Metasploit渗透Oracle环境的搭建
- 类图(Rose) - Windows XP经典软件系列
- C/C++心得-面向对象
- Linux下安装Qt5.6.1
- Spring通过注解装配Bean
- HDU 1029 Ignatius and the Princess IV (map的使用)
- 对于dequeueReusableCellWithIdentifier:的理解
- js和jquery对象的相互转换
- 史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)(Finchley版本)
- Unity 游戏框架搭建 (十八) 静态扩展 + 泛型实现transform的链式编程