程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 1874 暢通工程續 SPFA || dijkstra

HDU 1874 暢通工程續 SPFA || dijkstra

編輯:C++入門知識

 

題目大意:

給你一些點,讓你求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;idis)
				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;idis)
				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;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved