麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

PAT甲級1030

2019-11-11 04:45:55
字體:
來源:轉載
供稿:網友

1030. Travel Plan (30)

時間限制400 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, Yue

A traveler's map gives the distances between cities along the highways, together with the cost of each highway. Now you are supposed to write a PRogram to help a traveler to decide the shortest path between his/her starting city and the destination. If such a shortest path is not unique, you are supposed to output the one with the minimum cost, which is guaranteed to be unique.

Input Specification:

Each input file contains one test case. Each case starts with a line containing 4 positive integers N, M, S, and D, where N (<=500) is the number of cities (and hence the cities are numbered from 0 to N-1); M is the number of highways; S and D are the starting and the destination cities, respectively. Then M lines follow, each provides the information of a highway, in the format:

City1 City2 Distance Cost

where the numbers are all integers no more than 500, and are separated by a space.

Output Specification:

For each test case, print in one line the cities along the shortest path from the starting point to the destination, followed by the total distance and the total cost of the path. The numbers must be separated by a space and there must be no extra space at the end of output.

Sample Input
4 5 0 30 1 1 201 3 2 300 3 4 100 2 2 202 3 1 20Sample Output
0 2 3 3 40
#include<cstdio>#include<vector>#include<queue>#include<algorithm>using namespace std;const int maxn = 510;const int INF = 1000000000;struct Node{	int v, dis, cost;}node;struct compare{	bool Operator()(Node n1, Node n2)	{		return n1.dis > n2.dis;	}};vector<Node> Adj[maxn];int costs[maxn][maxn];bool vis[maxn] = { false };int d[maxn];//int costs[maxn];vector<int> pre[maxn];int N, M, S, D;void Dijkstra(int s){	fill(d, d + maxn, INF);//	fill(costs, costs + maxn, 0);	d[s] = 0;//	costs[s] = 0;	priority_queue<Node, vector<Node>, compare> Q;	node.v = s; node.dis = d[s]; //node.cost = costs[s];	Q.push(node);	int u;	for (int i = 0; i < N; i++)	{		if (!Q.empty())		{			u = Q.top().v;			vis[u] = true;			Q.pop();		}		else			return;		for (int i = 0; i < Adj[u].size(); i++)		{			int v = Adj[u][i].v;			int dis = Adj[u][i].dis;		//	int cost = Adj[u][i].cost;			if (!vis[v])			{				int t = d[u] + dis;				if (t < d[v])				{					d[v] = t;					pre[v].clear();					pre[v].push_back(u);					node.v = v; node.dis = t; //node.cost = cost;					Q.push(node);				}				else if (t == d[v])				{					pre[v].push_back(u);				}			}		}	}}vector<int> path, tempPath;int minCost = INF;void DFS(int v){	if (v == S)	{		tempPath.push_back(v);		int cost = 0;		int i = tempPath.size();		for (i--; i >0; i--)		{			int id = tempPath[i], idnext = tempPath[i - 1];			cost += costs[id][idnext];		}		if (cost < minCost)		{			minCost = cost;			path = tempPath;		}		tempPath.pop_back();		return;	}	tempPath.push_back(v);	for (int i = 0; i < pre[v].size(); i++)	{		DFS(pre[v][i]);	}	tempPath.pop_back();}void PrintPath(){	for (int i = path.size() - 1; i >= 0; i--)	{		printf("%d ", path[i]);	}}int main(){	scanf("%d%d%d%d", &N, &M, &S, &D);	int City1, City2, Distance, Cost;	for (int i = 0; i < M; i++)//這里輸入的是邊	{		scanf("%d%d%d%d", &City1, &City2, &Distance, &Cost);		node.v = City2; node.dis = Distance; 		costs[City1][City2] = Cost;		costs[City2][City1] = Cost;//node.cost = Cost;		Adj[City1].push_back(node);		node.v = City1;		Adj[City2].push_back(node);	}	Dijkstra(S);	DFS(D);	PrintPath();	printf("%d %d/n", d[D], minCost);	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中国老女人一级毛片视频 | 91精品久久香蕉国产线看观看 | 免费国产在线视频 | 亚洲福利在线视频 | 中午日产幕无线码1区 | 国产一级淫片在线观看 | av观看网站 | 国产69久久久 | 911色_911色sss主站色播 | 久久99国产伦子精品免费 | 免费观看黄色一级视频 | 欧美ab| 最新91在线视频 | 日本中文字幕久久 | 亚洲天堂成人在线观看 | 欧美a在线播放 | 欧美成网站 | www.48xx.com| 法国性xxx精品hd专区 | 夜夜夜精品视频 | 51色视频| 精品一区二区久久久久久按摩 | 日本黄色大片免费 | 成人三级电影网址 | 依依成人综合 | 97porn| 精品国产一区二区三区四区在线 | 88xx成人永久免费观看 | 视频在线91 | 国产一区免费观看 | 丰满年轻岳中文字幕一区二区 | 久久人人97超碰国产公开结果 | 亚洲九草| 毛片哪里看 | 国产在线精品91 | 久久华人 | 成年免费视频黄网站在线观看 | 久久精品一二三区白丝高潮 | 黄色国产在线观看 | 欧美亚洲另类在线 | 护士hd欧美free性xxxx |