kuangbin_ShortPath S (POJ 3169)
被cow类题目弄得有些炸裂 想了好久好久写了120多行 依然长跪不起发现计算约束条件的时候还是好多麻烦的地方过不去
然后看了看kuangbin的blog 都是泪啊 差分约束的方式做起来只要70多行啊炒鸡简洁有没有
Ps 给手写queue的实现方式跪一下 真是快的飞起
------------------Update-------------------
虽然当时也感叹了一下为什么用最短路的写法解最长路但是没深究 但是看了奚政巨巨的odp(什么鬼格式)之后发现原来一切都来自神奇的差分约束
约束条件是dist[i] - dist[j] <= c 等价于if(dist[i] > c + dist[j]) dist[i] 就被松弛成dist[j] + c 都是算计啊!
妙 真是妙(脑补鬼畜)
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <algorithm>
#define INF 0x3F3F3F3F
using namespace std; const int MAXN = (int)(1e4 + );
const int MAXM = (int)(1e5 + ); int n, ml, md, dist[MAXN];
int size, head[MAXN], point[MAXM], val[MAXM], nxt[MAXM]; void add (int from, int to, int value)
{
val[size] = value;
point[size] = to;
nxt[size] = head[from];
head[from] = size++;
} int spfa()
{
int time[MAXN];//也许以后用cnt做名字比较好
bool vis[MAXN];
queue<int> q;
memset(vis, false, sizeof vis);
memset(dist, INF, sizeof dist);
memset(time, , sizeof time); q.push();
vis[] = true;
dist[] = ;
while(!q.empty()){
int u = q.front();
q.pop();
vis[u] = false;
for(int i = head[u]; ~i; i = nxt[i]){
if(dist[point[i]] > dist[u] + val[i]){
dist[point[i]] = dist[u] + val[i];
if(!vis[point[i]]){
vis[point[i]] = true;
q.push(point[i]);
if(++time[point[i]] > n) return -;
}
}
}
}
return dist[n] == INF ? - : dist[n];
} int main()
{
size = ;
memset(head, -, sizeof head); scanf("%d%d%d", &n, &ml, &md);
while(ml--){
int from, to, value;
scanf("%d%d%d", &from, &to, &value);
if(from > to) swap(from, to);
add(from, to, value);
}
while(md--){
int from, to, value;
scanf("%d%d%d", &from, &to, &value);
if(from < to) swap(from, to);
add(from, to, -value);
}
int ans = spfa();
printf("%d\n", ans);
return ;
}
kuangbin_ShortPath S (POJ 3169)的更多相关文章
- POJ 3169 Layout (spfa+差分约束)
题目链接:http://poj.org/problem?id=3169 差分约束的解释:http://www.cnblogs.com/void/archive/2011/08/26/2153928.h ...
- POJ 3169 Layout(差分约束啊)
题目链接:http://poj.org/problem? id=3169 Description Like everyone else, cows like to stand close to the ...
- POJ 3169.Layout 最短路
Layout Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11612 Accepted: 5550 Descripti ...
- POJ 3169 Layout (spfa+差分约束)
题目链接:http://poj.org/problem?id=3169 题目大意:n头牛,按编号1~n从左往右排列,可以多头牛站在同一个点,给出ml行条件,每行三个数a b c表示dis[b]-dis ...
- POJ 3169 Layout (HDU 3592) 差分约束
http://poj.org/problem?id=3169 http://acm.hdu.edu.cn/showproblem.php?pid=3592 题目大意: 一些母牛按序号排成一条直线.有两 ...
- poj 3169 Layout(差分约束+spfa)
题目链接:http://poj.org/problem?id=3169 题意:n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0.这些牛的距离存在着一些约束关系:1.有m ...
- kuangbin_ShortPath L (POJ 2502)
dij部分还是跟模板差不多的 但是这题的难点是处理输入 或者说理解题意 事实上每个点之间都是可以走的......WA了好几发就因为没意识到同一条路线上的各个站点之间居然也可以走得比车子快.... PS ...
- kuangbin_ShortPath J (POJ 1511)
其实虽然一开始有被这个题的8000MS 和 256MB限制又被吓到 但是严格来说跟之前的POJ 3268是一样的做法只是数据大了点 但是问题就出在数据大了点上 其实严格来说也不大 1e6 数组加起来大 ...
- poj 3169 Layout (差分约束)
3169 -- Layout 继续差分约束. 这题要判起点终点是否连通,并且要判负环,所以要用到spfa. 对于ML的边,要求两者之间距离要小于给定值,于是构建(a)->(b)=c的边.同理,对 ...
随机推荐
- 2799元的HTC One时尚版要卖疯了
俗话说“好人有好报”,这句话同样可以应用到手机上.本月初,HTC正式公布了HTC One时尚版的售价,裸机2799元,礼包价2999元(配智能立显保护套).该价格一出,立刻引来一片哗然.因为大家都不相 ...
- 第八章 标准IO库
1.IO对象时不可复制或者赋值的:也就是说形参或者返回类型也不能为流类型.如果非要传递或者返回IO对象的的话,则必须传递或者返回指向对象的指针或者引用.如: ofstream &print( ...
- ALAssets的两种用法
一: ALAssetsGroupEnumerationResultsBlock resultsBlock = ^(ALAsset *result, NSUInteger index, BOOL *st ...
- bind,call,apply区别
js中bind.call.apply函数的用法 2015-02-27 21:16:39 标签:javascript js bind call apply 原创作品,允许转载,转载时请务必以超链接形式 ...
- leetcode 238 Product of Array Except Self
这题看似简单,不过两个要求很有意思: 1.不准用除法:最开始我想到的做法是全部乘起来,一项项除,可是中间要是有个0,这做法死得很惨. 2.空间复杂度O(1):题目说明了返回的那个数组不算进复杂度分析里 ...
- AFNetworking实现程序重新启动时的断点续传
今天需要用AFNetworking实现断点续传的功能,但是在进行了一番研究之后,发现AFNetworking虽然支持下载文件的暂停和继续,但是程序重新启动后再次下载无法进行续传.网上有说可以通过AFD ...
- iOS 难题解决日志------2层控制器 上面的控制器显示透明
f ([[[UIDevice currentDevice] systemVersion] floatValue]>=8.0) { nextVC.modalPresentationStyle=U ...
- HDU 5820 (可持久化线段树)
Problem Lights (HDU 5820) 题目大意 在一个大小为50000*50000的矩形中,有n个路灯.(n<=500000) 询问是否每一对路灯之间存在一条道路,使得长度为|x1 ...
- 转: ASP.NET+ExtJs4.0+表单提交submit,上传图片到服务器
http://blog.csdn.net/lmaohuanl/article/details/6792057 <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...
- 4 Values whose Sum is 0
Time Limit:15000MS Memory Limit:228000KB 64bit IO Format:%I64d & %I64u Submit Status D ...