差分约束(就是把不等式转化为一个图,然后就可以做了,现在看来,我是很水的,我以前根本没有写过是spfa,然后我也煤油搞懂spfa的核心思想,)
来源:互联网 发布:王源sleep 知乎 编辑:程序博客网 时间:2024/03/29 17:37
差分约束,就是把题目中的信息转化为不等式,就是>=那种,不是的也是可以转化的,然后等式的化为负的,分为两个式子,我套一下模板,然后发现错了,这个时候的我茫然无措,不知道该从哪里查错误,然后问了一下大神,我发现大神的思维不仅快,而且,代码能力还是特别快的,我真是心悦诚服,还有我感觉自己的实践自己写代码的时间太少了,然后还有一位大佬,说应该自己写模板,不要一直依赖别人的模板,我觉得这话说的极是,好学校的学生就是不一样啊。
题目链接:点击打开链接
下面贴上大佬的代码:
#include <stdio.h>#include <algorithm>#include <vector>#include <string.h>#include <queue>using namespace std;const int N = 1005;typedef pair<int,int> edg;vector<edg>G[N];char s[5];void add(int a, int b, int c){ G[a].push_back(edg(b, c));}int dis[N], vis[N];bool spfa(int s, int n){ queue<int>q; for(int i = 0; i <= n; ++i) dis[i] = 0x7ffffff, vis[i] = 0; dis[s] = 0; q.push(s); vis[s]++; while(!q.empty()){ int u = q.front(); q.pop(); for(int k = 0; k < G[u].size(); ++k){ int v = G[u][k].first, w = G[u][k].second; if(dis[v] > dis[u]+w){ dis[v] = dis[u]+w; if(vis[v] > n) return 0; else{ vis[v]++; q.push(v); } } } } return 1;}int main(int argc, const char * argv[]) { int n, m; while(scanf("%d%d", &n, &m) != EOF){ for(int i = 0; i <= n; ++i) G[i].clear(); int st = 0; for(int i = 0; i < m; ++i){ scanf("%s", s); if(s[0] == 'P'){ int a, b, c; scanf("%d%d%d", &a, &b, &c); add(a, b, -c); add(b, a, c); } else{ int a, b; scanf("%d%d", &a, &b); add(a, b, -1); } } for(int i = 1; i <= n; ++i){ add(st, i, -1); } if(spfa(st, n)) puts("Reliable"); else puts("Unreliable"); } return 0;}
我觉得我应该多打几遍,然后记忆一下,
0 0
- 差分约束(就是把不等式转化为一个图,然后就可以做了,现在看来,我是很水的,我以前根本没有写过是spfa,然后我也煤油搞懂spfa的核心思想,)
- 本来我觉得半天可以解决的编译错误,现在看来一天都搞不定了
- POJ3159 Candies(差分约束+SPFA的栈实现)
- HPU 1707:求解不等式【SPFA & 差分约束】
- 《Google想出了一个决定人员晋升的算法,然后就没有然后了......》有感
- ~ 这是我写的 我怎么也搞不懂是错在哪了
- 【HDU5545 2015 CCPC 南阳国赛F】【差分约束思想 费用流思想】The Battle of Guandu 官渡之战 重要战场人数多 士兵流向转化问题为最短路spfa+dijkstra双写
- 北理工java的试卷总结,我做了一下,发现也有许多以前没有理解的地方,现在再次记录下来
- POJ - 3159 不卡建图,几乎赤果果的差分约束+SPFA..
- 鉴于spfa基础上的差分约束算法
- POJ1364 King(差分约束+Spfa)
- POJ3159差分约束(SPFA)
- POJ3169差分约束(SPFA)
- uva11478(差分约束,spfa求负环)
- POJ 3159 (差分约束+spfa)
- POJ3169 差分约束系统(+SPFA)
- 以前做的一个邮件群发器:下载后把.jpg 去掉就可以了
- poj3159差分约束+栈实现的spfa+邻接链表 差分约束
- 最多约数问题
- 事件(3)——事件对象
- 2016年湖南省第十二届大学生计算机程序设计竞赛 解题报告
- XML简介与创建
- [干货最新]将自己库添加Cocoapods支持
- 差分约束(就是把不等式转化为一个图,然后就可以做了,现在看来,我是很水的,我以前根本没有写过是spfa,然后我也煤油搞懂spfa的核心思想,)
- AngularJS之依赖注入(实例一)
- CSS-省略号
- 字符串分隔
- Ubuntu 通过ppa安装node
- 第二周项目一c/c++语言中函数参数传递的三种方式
- 原来只是说说而已
- rem adb command 注释符号
- HDU:1266 Reverse Number