PAT A1072

方法:先用Dijkstra算法求得不同源点时的最短路径,再求得对应的最小路径值和平均路径值。

注意:需要满足在加油站的服务区内。

#include 
#include 
#include 
#include 
using namespace std;
const int maxn=1020;
const int INF=10000000;
int house,station,road,range;
struct arc{
	int next,dis;
};
vector ar[maxn];
bool vis[maxn];
int dis[maxn];
void dijkstra(int start,int &mindis,float &avgdis,int &flag){
	fill(dis,dis+maxn,INF);
	fill(vis,vis+maxn,0);
	dis[start]=0;
	for(int i=1;i<=house+station;i++){
		int min=INF,minv=-1;
		for(int j=1;j<=house+station;j++){
			if(vis[j]==false&&dis[j]range){
			flag=0;
			return;
		}
		if(dis[i]fdis||(mindis==fdis&&avgdis


你可能感兴趣的:(PAT,甲级)