POJ 3159 最短路dij优先队列模板 差分约束
来源:互联网 发布:算法的乐趣.pdf 编辑:程序博客网 时间:2024/06/15 01:44
题意:第一行n,m,n个点,m条边,接下来m行,告诉你a,b,c,代表着b最多比a多c块糖,问的是1最多比n多几块。。
思路:差分约束第一道题,留念~这道题spfa各种跪=。=,敲了个没加优化的dij依旧跪,然后才开始敲了第一次优先队列优化的dij.....
差分约束我刚开始看,不妄加评论了=。=
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>using namespace std;const int maxn = 30010;const int maxm = 150010;const int inf = 0x3f3f3f3f;struct Side{ int v,w,next;}side[maxm];int node[maxn],top;void add_side(int u,int v,int w){ side[top].v = v; side[top].w = w; side[top].next = node[u]; node[u] = top++;}class Cmp{ public: bool operator()(const pair<int,int> &a,const pair<int,int> &b){ return a.first > b.first; }};int n,m;int dis[maxn];bool vis[maxn];priority_queue<pair<int,int>,vector<pair<int,int> >,Cmp>q;int dijkstra(int s,int t){ for(int i = 0;i <= n;i ++) dis[i] = inf; q.push(make_pair(0,s)); while(!q.empty()){ pair<int,int> tmp = q.top();q.pop(); int u = tmp.second; if(dis[u]!=inf)continue; dis[u] = tmp.first; for(int i = node[u];i != -1;i = side[i].next){ q.push(make_pair(dis[u] + side[i].w,side[i].v)); } } return dis[t];}int main(){ top = 0; memset(node,-1,sizeof(node)); scanf("%d%d",&n,&m); while(m--){ int a,b,c; scanf("%d%d%d",&a,&b,&c); add_side(a,b,c); } int ans = dijkstra(1,n); printf("%d\n",ans); return 0;}重新说下对优先队列优化的dij 的理解:dijkstra是每次确定一个点的最短路,每次找到一个距离不是inf的店,说明之前的距离没有确定,而且现在的距离是最小的,所以这个点的最短距离就确定了,然后更新,原先的理解有点错误。。
0 0
- POJ 3159 最短路dij优先队列模板 差分约束
- POJ 3159 Candies(spfa最短路,差分约束)
- POJ 3159 差分约束系统 最短路
- poj 3159 Candies(差分约束原理 最短路)
- poj-3159 最短路SPFA+差分约束系统
- POJ 3159 Candies(最短路 差分约束)
- poj --- 1724 最短路变形 【Dij + 优先队列 】
- Poj 3159 (差分约束系统,SPFA+栈,Dij+heap)
- 最短路&&差分约束
- poj 1201 Intervals(最短路+spfa+差分约束系统)
- poj 3169 Layout(差分约束求最短路)
- [POJ 3169]Layout[差分约束][最短路]
- POJ 3169 Layout ---差分约束 + 最短路 + 含负边处理
- poj 3169 Layout(差分约束,最短路)
- POJ 3169 Layout (差分约束最短路)
- poj 3159 (spfa差分约束最短路) poj 1201
- POJ 3159 差分约束+迪杰斯特拉+优先队列 图的数据结构用数组表示
- POJ 3159 Candies (差分约束 Dijkstra+优先队列 SPFA+栈)
- VS2012由中文到任意语言转换方法
- u-boot-2014.10移植第8天----深入分析代码(三)
- Redis 简单使用
- 【最短路】HDOJ 2363 Cycling
- SEO人员常见的HTTP返回码
- POJ 3159 最短路dij优先队列模板 差分约束
- 指数哥伦布码
- 图片居中对齐
- 感知机学习算法的对偶形式
- Kalman滤波在单片机上的使用
- 今天找到一个好的DOM4J解析XML的方法elementByID。可以通过QName获取属性。记录下~
- 2014.10.31读取和解析XML数据
- Redis数据库系列(三)------Redis字符串类型的操作
- HDU 3722 Card Game(KM最大匹配)