最短路(dijskra+SPFA+Bellman)
最短路
Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 82 Accepted Submission(s) : 51
#include<stdio.h>
#include<string.h>
const int INF=0x3f3f3f3f;
const int MAXN=;
#define MIN(x,y) (x<y?x:y)
int map[MAXN][MAXN];
int vis[MAXN],d[MAXN];
int N;
void initial(){
memset(d,INF,sizeof(d));
memset(vis,,sizeof(vis));
memset(map,INF,sizeof(map));
}
void dijkscra(int s){
int k;
d[s]=;
while(true){
k=-;
for(int i=;i<=N;i++)
if(!vis[i]&&(k==-||d[i]<d[k]))k=i;
if(k==-)break;
vis[k]=;
for(int i=;i<=N;i++){
d[i]=MIN(d[i],d[k]+map[k][i]);
}
}
}
int main(){
int M;
int a,b,c;
while(~scanf("%d%d",&N,&M),N||M){
initial();
while(M--){
scanf("%d%d%d",&a,&b,&c);
if(c<map[a][b]){
map[a][b]=map[b][a]=c;
}
}
dijkscra();
printf("%d\n",d[N]);
}
return ;
}
SPFA算法:
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
const int INF=0x3f3f3f3f;
const int MAXN=;
const int MAXM=;
int top,vis[MAXN],dis[MAXN],head[MAXM];
int N,M;
queue<int>dl;
struct Edge{
int from,to,value,next;
};
Edge edg[MAXM];
void initial(){
top=;
memset(vis,,sizeof(vis));
memset(dis,INF,sizeof(dis));
memset(head,-,sizeof(head));
while(!dl.empty())dl.pop();
}
void add(int u,int v,int value){
Edge E={u,v,value,head[u]};
edg[top]=E;
head[u]=top++;
}
void SPFA(int sx){
dl.push(sx);
dis[sx]=;
vis[sx]=;
while(!dl.empty()){
int u=dl.front();
dl.pop();
vis[u]=;
for(int i=head[u];i!=-;i=edg[i].next){
int v=edg[i].to;
if(dis[u]+edg[i].value<dis[v]){
dis[v]=dis[u]+edg[i].value;
if(!vis[v]){
vis[v]=;
dl.push(v);
}
}
}
}
printf("%d\n",dis[N]);
}
int main(){
int a,b,c;
while(~scanf("%d%d",&N,&M),N|M){
initial();
while(M--){
scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
add(b,a,c);
}
SPFA();
}
return ;
}
Bellman:
#include<stdio.h>
#include<string.h>
#define MIN(x,y)(x<y?x:y)
#define mem(a,b) memset(a,b,sizeof(a))
const int INF=0x3f3f3f3f;
const int MAXN=;
const int MAXM=<<;
struct Node{
int u,v,w;
};
Node dt[MAXM];
int dis[MAXN];
int top,N;
void add(int u,int v,int w){
dt[top].u=u;
dt[top].v=v;
dt[top++].w=w;
}
void Bellman(int sx){
mem(dis,INF);
dis[sx]=;
for(int j=;j<=N;j++)
for(int i=;i<top;i++){
int u=dt[i].u,v=dt[i].v,w=dt[i].w;
dis[v]=MIN(dis[v],dis[u]+w);
}
}
int main(){
int M;
while(~scanf("%d%d",&N,&M),N||M){
int a,b,c;
top=;
while(M--){
scanf("%d%d%d",&a,&b,&c);
add(a,b,c);
add(b,a,c);
}
Bellman();
printf("%d\n",dis[N]);
}
return ;
}
最短路(dijskra+SPFA+Bellman)的更多相关文章
- 一个人的旅行(floyd+dijskra+SPFA+Bellman)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- 模板C++ 03图论算法 1最短路之单源最短路(SPFA)
3.1最短路之单源最短路(SPFA) 松弛:常听人说松弛,一直不懂,后来明白其实就是更新某点到源点最短距离. 邻接表:表示与一个点联通的所有路. 如果从一个点沿着某条路径出发,又回到了自己,而且所经过 ...
- Wormholes(SPFA+Bellman)
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 36860 Accepted: 13505 Descr ...
- ACM/ICPC 之 最短路-Floyd+SPFA(BFS)+DP(ZOJ1232)
这是一道非常好的题目,融合了很多知识点. ZOJ1232-Adventrue of Super Mario 这一题折磨我挺长时间的,不过最后做出来非常开心啊,哇咔咔咔 题意就不累述了,注释有写,难点在 ...
- POJ 2449Remmarguts' Date K短路模板 SPFA+A*
K短路模板,A*+SPFA求K短路.A*中h的求法为在反图中做SPFA,求出到T点的最短路,极为估价函数h(这里不再是估价,而是准确值),然后跑A*,从S点开始(此时为最短路),然后把与S点能达到的点 ...
- ACM-最短路(SPFA,Dijkstra,Floyd)之最短路——hdu2544
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- BZOJ_1614_ [Usaco2007_Jan]_Telephone_Lines_架设电话线_(二分+最短路_Dijkstra/Spfa)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1614 分析 类似POJ_3662_Telephone_Lines_(二分+最短路) Dijks ...
- 六度分离(floyd算法+dijskra+SPFA)
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 畅通工程续(dijskra+SPFA)
畅通工程续 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submiss ...
随机推荐
- vi全局替换方法
来自:http://blog.sina.com.cn/s/blog_736f1c59010136ry.html 1. 基本的替换 :s/vivian/sky/ 替换当前行第一个 vivian 为 sk ...
- 整理幾種常見PCB表面處理的優缺點
這只是一篇整理文,而且我個人僅從事過後段的電路板組裝,而未從事過電路板製程,所以有些見解純粹只是個人看法,如果有些不一樣的聲音或錯誤也歡迎留言討論. 隨著時代的演進,科技的進步,環保的要求,電子業也隨 ...
- Intuit Quicken Home & Business 2016(Manage your business and personal finances)
Quicken Home & Business 2016 - Manage your business and personal finances all in one place. Cate ...
- delphi 操作 TWebBrowser 实现自动填表(JQuery脚本与 OleVariant 方法)
版本:DELPHI XE8 操作交通银行信用卡申请表单(2016-03-23),网址如下: https://creditcardapp.bankcomm.com/applynew/front/appl ...
- Delphi控件大全:www.vclcomponents.com
torry的排版不行了,还好找到它.
- [置顶] Oracle GoldenGate 系列:使用 Oracle ASM API DBLOGREADER 时遇 ora-01031 错误
今天在自己新搭建的 Oracle ACFS 文件系统上测试 GoldenGate ,启动 extract 进程报如下错误: 2013-08-27 14:58:39 ERROR OGG-00446 ...
- 【hihocoder1255 Mysterious Antiques in Sackler Museum】构造 枚举
2015北京区域赛现场赛第2题. 题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf OJ链接:http://hih ...
- hdu 1421 搬寝室(dp)
Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆, ...
- C#版QQTea加密
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Wind ...
- Erp第二章:业务流程化、集成、规划
1从全流程着眼,支持业务流程化优化,通过流程化优化提高工作效率和企业效益 2每个系统业务都相互依存.相互作用. 3.应用 程序(不用厂家)越多,信息集成难度越大 4信息集成.实时共享.实时企业 5信息 ...