HDU 1874 畅通工程续 SPFA || dijkstra

2014-11-24 08:13:43 · 作者: · 浏览: 0

题目大意:

给你一些点,让你求S到T的最短路径。

我只是来练习一下SPFA的

dijkstra:

#include
  
   
const int INF=1000000;
const int MAXN=200+10;
int n,m;
int map[MAXN][MAXN];
int dis[MAXN];
void dijkstra(int s)
{
	for(int i=0;i
   
    dis) map[from][to]=map[to][from]=dis; } int s,t; scanf(%d%d,&s,&t); dijkstra(s); if(dis[t]==INF) puts(-1); else printf(%d ,dis[t]); } return 0; }
   
  

SPFA:

#include
  
   
#include
   
     using namespace std; const int INF=1000000; const int MAXN=200+10; int n,m; int map[MAXN][MAXN]; int dis[MAXN]; void SPFA(int s) { for(int i=0;i
    
      q; q.push(s); while(!q.empty()) { int cur=q.front(); q.pop(); for(int i=0;i
     
      dis) map[from][to]=map[to][from]=dis; } int s,t; scanf(%d%d,&s,&t); SPFA(s); if(dis[t]==INF) puts(-1); else printf(%d ,dis[t]); } return 0; }