第K短路
来源:互联网 发布:linux系统安装方法 编辑:程序博客网 时间:2024/05/21 07:14
单源最短路+A*算法==第K短路
A*算法是一种启发式搜索方法,与bfs,dfs的区别在于它可以利用一个启发函数进行选择,使搜索的时间复杂度被大大的优化。
A*主要的公式表达式为f(n)=g(n)+h(n);
其中 f(n) 是从初始点经由节点n到目标点的估价函数,
g(n) 是在状态空间中从初始节点到n节点的实际代价,
h(n) 是从n到目标节点最佳路径的估计代价。
那么在第K短路问题中,g(i)为从初始点出发到当前该节点的距离,h(i)为当前该节点到结束点最短路距离。
A*算法的代码:
int Astar_Kth(int s,int t,int k){ priority_queue<num>Q; num temp; temp.u=s,temp.d=0,temp.h=dis[s]; Q.push(temp); if(s==t) k++; while(!Q.empty()) { temp=Q.top(); Q.pop(); int v=temp.u; cnt[v]++; if(cnt[v]>k) continue; if(cnt[t]==k) return temp.d; for(int i=0;i<V[v].size();i++) { int to=V[v][i]; int s=pre[v][i]; num next; next.u=to,next.d=temp.d+s,next.h=dis[to]; Q.push(next); } } return -1;}
0 0
- 第k短路
- poj2449 第K短路
- 第 k 短路
- pku2449[第k短路]
- 第K短路
- 第K短路
- poj2449(第k短路)
- 第K短路
- 第k短路
- 第k短路
- 第K短路
- [jzoj1163]第k短路
- pku2449第K短路 最短路+A*
- poj2449 第k短路....A*+最短路
- 第K最短路程序
- [第K短路]POJ_2449_Remmarguts' Date
- 第k短路的求法
- BZOJ 1598 第k短路
- [Linux]工作中常见的命令
- POJ 2960 S-Nim(SG+记忆化搜索)
- hdu-5407(多校2015)
- UC-Android逆向工程师 面试题1的分析
- 九度oj 1103
- 第K短路
- golang-发送邮件
- 2.15 求二维数组的子矩阵的最大和
- C语言中do...while(0)的妙用-避免goto
- NYOJ 709 异 形 卵(区域最大值,水题)
- Cin 与 Cout (C++第二天)
- filter2D函数
- inf
- 电脑反应慢的原因