传送门

当年崔叔就讲得这个东西,感觉把不等式转化成最短路这个想法就很神奇,今天又回来温习了一下(累了懒得解释了,过几天来补 咕咕咕

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
const int M=20005;
const int N=5005;
int n,m,tot,head[M],to[M],nex[M],v[M],num[N],dis[N];
bool vis[N];
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
inline void add(int x,int y,int z){++tot;nex[tot]=head[x];head[x]=tot;to[tot]=y;v[tot]=z;
}
inline bool spfa(int s){queue<int>q;q.push(s);for(int i=1;i<=n;i++) vis[i]=0;vis[s]=1,dis[s]=0;while(!q.empty()){int dmf=q.front();q.pop();    for(int i=head[dmf];i;i=nex[i]){int lgr=to[i];if(dis[lgr]>dis[dmf]+v[i]){dis[lgr]=dis[dmf]+v[i];if(!vis[lgr]){vis[lgr]=1;num[lgr]++;if(num[lgr]>=n) return 0;q.push(lgr);}}} vis[dmf]=0;}return 1;
}
int main(){n=read();m=read();for(int i=1;i<=n;i++) add(0,i,0),dis[i]=2147483640,num[i]=0;for(int i=1;i<=m;i++){int x,y,z;x=read();y=read();z=read(); add(y,x,z);}if(spfa(0)){for(int i=1;i<=n;i++) printf("%d ",dis[i]);}else printf("NO");return 0;
}

洛谷P5960 【模板】差分约束算法相关推荐

  1. 解题报告:P5960 【模板】差分约束算法(及常用技巧)

    P5960 [模板]差分约束算法 差分约束系统 给出 n 个变量和 m 个约束条件,形如 xi−xj≤ckx_i - x_j \leq c_kxi​−xj​≤ck​,你需要求出一组解,使得所有约束条件 ...

  2. 【模板】差分约束算法

    [模板]差分约束算法 题意: 题解: 模板题 算法讲解 给出一组包含 m 个不等式,有 n 个未知数.求任意一组满足这个不等式组的解,或判定无解. 连边之后跑最短路,保证每个连通块都没有负环即可. 也 ...

  3. 洛谷or牛客数据结构+算法

    栈思想:先进后出 tips:栈里能放下标就放下标 (牛客)小c的计事本(直接用stack可以简化代码,且不会被自己绕晕,当时没意识到) (牛客)吐泡泡(没意识到用栈),(牛客)好串 1.后缀表达式(栈 ...

  4. 【图论】差分约束算法详解

    一.前言 在介绍差分约束之前,我们首先需要知道差分约束是用来解决什么问题的:差分约束是一个用来解决形如 X<=Y+c 的二元不等式组的可行解的一个算法.在高中数学中我们会学习如何使用线性规划的方 ...

  5. 洛谷OJ:P5960 【模板】差分约束算法

    思路:差分约束模板题,注意使用SPFA来判断负环,也即无解的情况. #include<queue> #include<vector> #include<string> ...

  6. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

  7. 洛谷·【模板】点分树 | 震波【including 点分树

    初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...

  8. 【后缀数组】洛谷P3809模板题

    题目背景 这是一道模板题. 题目描述 读入一个长度为 n n n 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置. ...

  9. 洛谷.4897.[模板]最小割树(Dinic)

    题目链接 最小割树模板.具体见:https://www.cnblogs.com/SovietPower/p/9734013.html. ISAP不知为啥T成0分了.. Dinic: //1566ms ...

  10. 强连通分量:洛谷P3387 模板:缩点

    传送门 顾名思义,模板awa #include <cstdio> #include <cstring> #include <cmath> #include < ...

最新文章

  1. JQuery中each()的使用方法说明
  2. ECMA-335(CLI)标准 读书笔记(第一部:概念和架构 第7章)
  3. ubuntu14.04+gtsam安装(亲测)
  4. Linux系统基础知识
  5. flowable工作流 流程变量_互联网架构设计漫谈 (6)-90%的架构师都知道的工作流原理...
  6. gulp错误GulpUglifyError: unable to minify JavaScript解决
  7. 删缓存,数据库更新谁先执行,及延时双删
  8. android flag,Android 屏幕锁 - FLAG_KEEP_SCREEN_ON
  9. 软件工程项目经理必备能力
  10. 命令行CMD计算文件HASH值
  11. 回答完数据库连接池原理,面试官跪着求我入职他们公司
  12. 建造者模式(Builder)---创建型
  13. 茅台酒如何转卖?价格如何才最合理?爬取公众号后每天自动发送价格到钉钉如何呢?
  14. 《深入理解计算机系统》学习记录
  15. 思科静态路由和浮动路由的配置
  16. 六旋翼农用喷药、航拍功能无人机设计
  17. 自动计数报警器c语言程序,简易STC15F104E单片机定时报警器制作 附程序
  18. Core Spec 5.0 学习
  19. 多伦多大学Self-Driving Cars自动驾驶专项课程(三)Driving Decisions and Actions
  20. java 正则表达式不包含某个字符

热门文章

  1. 修复iPhone白苹果
  2. 使用keybase给你的Github commit加上GPG Verified签名认证(keybase教程)
  3. 昨天去某大厂面试,居然让我做四则运算,还好我够机灵。
  4. 推荐几个免费论文查重网站
  5. 黑客入侵龙卷风警报系统 城市关键基础设施安全问题再被提上议程
  6. ajax poker,《使命召唤15》大逃杀模式介绍 人物解锁方法一览
  7. 背篼酥课堂第九课--前端知识、APP知识
  8. Microsoft兼容性遥测是什么?Microsoft兼容性遥测占用高磁盘
  9. 永远的《毕业生》之《Scarborough Fair》
  10. java 临时文件目录_在Java中使用临时文件/文件夹