博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2387 Til the Cows Come Home
阅读量:5030 次
发布时间:2019-06-12

本文共 2382 字,大约阅读时间需要 7 分钟。

传送门:http://poj.org/problem?id=2387

这是最短路径问题,本题有重边,但是spfa能解决这个问题:

实现代码:

SPFA:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int maxv=1005; 9 const int maxe=4005;10 const int INF=1<<20; //刚这个开小了wrong了几次。11 12 struct Edge{13 int v,w;14 int next;15 };16 17 int head[maxv];18 int dis[maxv],vis[maxv];19 Edge edges[maxe];20 21 int cnt=0;22 void addEdge(int u,int v,int w){23 edges[cnt].v=v;24 edges[cnt].w=w;25 edges[cnt].next=head[u];26 head[u]=cnt++;27 }28 29 void spfa(int s,int n){30 for(int i=0;i<=n;i++){31 dis[i]=INF;32 vis[i]=0;33 }34 35 dis[s]=0;36 queue
q;37 q.push(s);38 vis[s]=1;39 40 while(!q.empty()){41 int u=q.front();42 q.pop();43 44 for(int i=head[u];i!=-1;i=edges[i].next){45 int v=edges[i].v;46 if(dis[v]>dis[u]+edges[i].w){47 dis[v]=dis[u]+edges[i].w;48 49 if(!vis[v]){50 q.push(v);51 vis[v]=1;52 }53 }54 }55 vis[u]=0;56 }57 58 }59 60 int main(){61 int T,n;62 scanf("%d%d",&T,&n);63 memset(head,-1,sizeof(head));64 for(int i=0;i

 Dijkstra实现:

#include 
#include
#include
using namespace std;const int MAXN=10050;const int INF=1<<20;int map[MAXN][MAXN];bool vis[MAXN];int dis[MAXN],pre[MAXN] ;//路径//图的顶点坐标是从1开始的//Dijkstra的邻接矩阵的实现void Dijkstra(int st,int n){ fill(dis,dis+n+1,INF); memset(vis,0,sizeof(vis)); memset(pre,-1,sizeof(pre)); dis[st]=0; for(int j=0;j
dis[i]){ Min=dis[i]; k=i; } } if(k==-1) break; vis[k]=true; for(int i=1;i<=n;i++) if(!vis[i]&&dis[i]>dis[k]+map[k][i]){ dis[i]=dis[k]+map[k][i]; pre[i]=k; } }}void output(int k){ if(pre[k]==-1){ return; } output(pre[k]); printf("%d ",pre[k]);}int main(){ int T,N; scanf("%d%d",&T,&N); for(int i=1;i<=N;i++){ fill(map[i],map[i]+N+1,INF); } for(int i=0;i
w){ map[u][v]=w; map[v][u]=w; } } Dijkstra(N,N); printf("%d\n",dis[1]); return 0;}

 

转载于:https://www.cnblogs.com/IKnowYou0/p/6477604.html

你可能感兴趣的文章
树的子结构
查看>>
关于根据Build Platform或者OS 加载x86或者x64 dll的问题
查看>>
程序员高效开发的几个技巧
查看>>
js-权威指南学习笔记19.2
查看>>
hexo 搭建博客
查看>>
关于 UIWebView 几个高级用法
查看>>
maven创建的项目中无法创建src/main/java 解决方案
查看>>
华为软件开发云测评报告二:代码检查
查看>>
集合1
查看>>
js 原生 ajax
查看>>
关键词 virtual
查看>>
建造者模式(屌丝专用)
查看>>
UVALive 4730 Kingdom +段树和支票托收
查看>>
[APIO2010]特别行动队
查看>>
[SCOI2016]幸运数字
查看>>
SpringBoot 集成ehcache
查看>>
初步swift语言学习笔记2(可选类型?和隐式可选类型!)
查看>>
Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
查看>>
在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
查看>>
在Macos下完美解决Adobe Dreamweaver CC 2018 汉化及操作方法
查看>>