HDU2680---Choose the best route(dijkstra&&SPFA)
来源:互联网 发布:零基础学c语言 pdf 编辑:程序博客网 时间:2024/04/30 06:12
#include<stdio.h>#include<string.h>#define inf 0xffffffusing namespace std;int map[1010][1010],dist[1010],vis[1010],n,m,s;int dijkstra(){memset(vis,0,sizeof(vis));for(int i=0;i<=n;i++)dist[i]=inf;vis[0]=1;dist[0]=0;for(int i=0;i<=n;i++){int pos=0,min=inf;for(int j=0;j<=n;j++)if(!vis[j] && dist[j]<min){pos = j;min = dist[j];}vis[pos]=1;for(int j=0;j<=n;j++){if(!vis[j] && dist[j]>dist[pos]+map[pos][j])dist[j]=dist[pos]+map[pos][j];}}}int main(){while(scanf("%d%d%d",&n,&m,&s)!=EOF){for(int i=0;i<=n;i++)for(int j=0;j<=n;j++){if(i==j) map[i][j]=0;else map[i][j]=inf;}int a,b,c;for(int i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);if(map[a][b]>c) map[a][b]=c;}int st,t,min=99999;scanf("%d",&st);for(int i=0;i<st;i++){scanf("%d",&t);map[0][t]=0;}dijkstra();if(dist[s]==inf)printf("-1\n");elseprintf("%d\n",dist[s]);}}
SPFA
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;#define inf 0x3f3f3f3int map[1100][1100],dis[1100],used[1100],t,s,d,n,m,st[1000],ed;void inti(){ for(int i=1;i<1+n;i++) for(int j=1;j<1+n;j++) if(i==j) map[i][j]=0; else map[i][j]=inf;}int SPFA(){ for(int i=1;i<1+n;i++) dis[i]=inf; queue<int> q; for(int i=0;i<d;i++) { q.push(st[i]); dis[st[i]]=0; used[st[i]]=1; } while(!q.empty()) { int now=q.front(); q.pop(); used[now]=0; for(int i=1;i<=n;i++) { if(dis[i]>dis[now]+map[now][i]) {dis[i]=dis[now]+map[now][i]; if(!used[i]) { q.push(i); used[i]=1; } } } } if(dis[s]==inf) return -1; else return dis[s];}int main(){ while(scanf("%d%d%d",&n,&m,&s)!=EOF) { inti(); int a,b,c; for(int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); if(map[a][b]>c) map[a][b]=c; } scanf("%d",&d); for(int i=0;i<d;i++) scanf("%d",&st[i]); int k=SPFA(); printf("%d\n",k); }}
0 0
- HDU2680---Choose the best route(dijkstra&&SPFA)
- hdu2680 Choose the best route (dijkstra)
- Choose the best route hdu2680 Dijkstra
- hdu2680 Choose the best route (Dijkstra)
- HDU2680:Choose the best route(Dijkstra)
- HDU2680:Choose the best route(Dijkstra)
- HDU2680 Choose the best route 【Dijkstra】
- hdu2680 Choose the best route (dijkstra)
- HDU2680 Choose the best route
- hdu2680 Choose the best route
- HDU2680-Choose the best route
- HDU2680 Choose the best route
- hdu2680 choose the best route
- hdu2680—Choose the best route(spfa)
- HDU2680 Choose the best route 解题报告--Dijkstra
- hdu2680 Choose the best route 最短路(Dijkstra算法)
- hdu2680最短路Choose the best route
- HDu2680(Choose the best route)
- OS X10.9下安装Nginx
- 2015年,启航
- 设计模式:接口隔离原则
- static_cast与dynamic_cast转换
- 结构体字节对齐
- HDU2680---Choose the best route(dijkstra&&SPFA)
- 谈谈dubbo
- K SUM问题
- 使用多线程的优点与缺点
- 华为OJ 字符串排序
- hdu 4565 So Easy!(矩阵快速幂)
- 使用maven管理andorid工程
- 九章算法面试题28 链表找环
- 设计模式:迪米特法则