亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

PAT甲級1072

2019-11-11 04:12:58
字體:
來源:轉載
供稿:網友

1072. Gas Station (30)

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

A gas station has to be built at such a location that the minimum distance between the station and any of the residential housing is as far away as possible. However it must guarantee that all the houses are in its service range.

Now given the map of the city and several candidate locations for the gas station, you are supposed to give the best recommendation. If there are more than one solution, output the one with the smallest average distance to all the houses. If such a solution is still not unique, output the one with the smallest index number.

Input Specification:

Each input file contains one test case. For each case, the first line contains 4 positive integers: N (<= 103), the total number of houses; M (<= 10), the total number of the candidate locations for the gas stations; K (<= 104), the number of roads connecting the houses and the gas stations; and DS, the maximum service range of the gas station. It is hence assumed that all the houses are numbered from 1 to N, and all the candidate locations are numbered from G1 to GM.

Then K lines follow, each describes a road in the formatP1 P2 Distwhere P1 and P2 are the two ends of a road which can be either house numbers or gas station numbers, and Dist is the integer length of the road.

Output Specification:

For each test case, PRint in the first line the index number of the best location. In the next line, print the minimum and the average distances between the solution and all the houses. The numbers in a line must be separated by a space and be accurate up to 1 decimal place. If the solution does not exist, simply output “No Solution”.

Sample Input 1:
4 3 11 51 2 21 4 21 G1 41 G2 32 3 22 G2 13 4 23 G3 24 G1 3G2 G1 1G3 G2 2Sample Output 1:
G12.0 3.3Sample Input 2:
2 1 2 101 G1 92 G1 20Sample Output 2:
No Solution
#include<cstdio>#include<iostream>#include<vector>#include<map>#include<string>#include<algorithm>#include<queue>using namespace std;struct Node{	int v, dis;}node;struct compare{	bool Operator()(Node n1, Node n2)	{		return n1.dis > n2.dis;	}};struct Result{	string solution;	double mindistance, averagedistance;	bool operator<(Result r)	{		if (mindistance != r.mindistance)			return mindistance > r.mindistance;//最大的最近距離,注意理解題意		else if (averagedistance != r.averagedistance)			return averagedistance < r.averagedistance;		else			return solution < r.solution;	}}result;int N, M, K, Ds;const int maxn = 1020;//這里注意maxn必須是1011以上const int INF = 1000000000;map<string, int> gas2num;map<int,string> num2gas;vector<Node> Adj[maxn];bool vis[maxn];int d[maxn];vector<Result> solutions;void Dijkstra(int s){	fill(vis, vis + maxn, false);	fill(d, d + maxn, INF);	d[s] = 0;	priority_queue<Node, vector<Node>, compare>Q;	node.v = s; node.dis = 0;	Q.push(node);	int u;	for (int i = 1; i <= N + M; i++)	{		if (!Q.empty())		{			u = Q.top().v;			vis[u] = true;			Q.pop();		}		for (int j = 0; j < Adj[u].size(); j++)		{			int v = Adj[u][j].v;			int dis = Adj[u][j].dis;			if (!vis[v]&&d[u]+dis<d[v])			{				d[v] = d[u] + dis;				node.v = v; node.dis = d[v];				Q.push(node);			}		}	}	double sum = 0.0;	result.mindistance = INF;	for (int i = 1; i <= N; i++)	{		if (d[i] > Ds)return;		else sum += d[i];		if (result.mindistance > d[i])		{			result.mindistance = d[i];		}	}	result.solution = num2gas[s];	result.averagedistance = sum / N;	solutions.push_back(result);}int main(){	scanf("%d%d%d%d", &N, &M, &K, &Ds);	string s1, s2; int distance;	int n = N;	for (int i = 0; i < K; i++)	{		cin >> s1 >> s2>>distance;		int v1, v2;		if (s1[0] != 'G')		{			//v1 = s1[0] - '0';這個地方注意若輸入的是10以上的數就不行			v1 = stoi(s1);		}		else		{			if (gas2num.find(s1) == gas2num.end())			{				v1 = gas2num[s1] = ++n;				num2gas[n] = s1;			}			else				v1 = gas2num[s1];		}		if (s2[0] != 'G')		{			//v2 = s2[0] - '0';			v2 = stoi(s2);		}		else		{			if (gas2num.find(s2) == gas2num.end())			{				v2 = gas2num[s2] = ++n;				num2gas[n] = s2;			}			else				v2 = gas2num[s2];		}		node.v = v2; node.dis = distance;		Adj[v1].push_back(node); node.v = v1;		Adj[v2].push_back(node);	}	for (int i = N + 1; i <= N + M; i++)	{		Dijkstra(i);	}	if (solutions.size())	{		sort(solutions.begin(), solutions.end());		cout << solutions[0].solution << endl;		printf("%.1f %.1f/n", solutions[0].mindistance, solutions[0].averagedistance);	}	else		printf("No Solution/n");	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品欧美日韩| 色综合久久中文字幕综合网小说| 欧美中文在线观看国产| 日韩禁在线播放| 久热精品在线视频| 国产精品久久久久久网站| 在线看片第一页欧美| 久久久精品视频成人| 亚洲女人天堂av| 色噜噜狠狠狠综合曰曰曰88av| www.久久久久久.com| 97国产成人精品视频| 91大神福利视频在线| 8x海外华人永久免费日韩内陆视频| 久久精品国产清自在天天线| 亚洲一区二区精品| 国内精品一区二区三区四区| 久久韩剧网电视剧| 亚洲国产精品久久久久秋霞不卡| 日韩av最新在线观看| 亚洲石原莉奈一区二区在线观看| 国产精品福利久久久| www.久久草.com| 亚洲一级黄色av| 国产免费一区视频观看免费| 久久久亚洲福利精品午夜| 久久精品国产2020观看福利| 亚洲人成网站999久久久综合| 亚洲缚视频在线观看| 中文字幕精品国产| 亚洲日韩欧美视频| 亚洲国产精彩中文乱码av在线播放| 国产精品久久久久久久久久新婚| 久久久久中文字幕| 97色在线观看免费视频| 热re99久久精品国产66热| 91av在线视频观看| 亚洲欧美在线免费| 久久成人精品一区二区三区| 亚洲色图欧美制服丝袜另类第一页| 九色精品美女在线| 国产精品久久久久久久久久免费| 国产精品极品美女粉嫩高清在线| 精品亚洲夜色av98在线观看| 亚洲国产另类 国产精品国产免费| 国产精品久久久久av| 欧美精品日韩www.p站| 欧美激情区在线播放| www.久久色.com| 日韩av一区二区在线观看| 日韩在线观看你懂的| 亚洲片国产一区一级在线观看| 国产精品久久久久久久美男| 国产精品成人一区二区三区吃奶| 日本道色综合久久影院| 91久久精品在线| 91精品久久久久久久久| 国a精品视频大全| 国产精品视频不卡| 欧美日韩国产一区二区| 国产一区二区三区在线看| 亚洲精品一区二区在线| 日韩电视剧在线观看免费网站| 日韩成人av一区| 亚洲国产高潮在线观看| 青青草原成人在线视频| 亚洲综合精品一区二区| 欧美国产日韩一区二区| 午夜精品久久久久久99热| 久久久久久18| 欧美国产日本在线| 日韩综合中文字幕| 欧美丝袜一区二区| 久久久久久网站| 国产日韩换脸av一区在线观看| 91日韩在线视频| 亚洲大尺度美女在线| 在线播放日韩专区| 91久久综合亚洲鲁鲁五月天| 欧美xxxx14xxxxx性爽| 欧美另类暴力丝袜| 成人av在线亚洲| 成人在线视频网站| 精品视频在线播放| www.亚洲免费视频| 国产精品美腿一区在线看| 亚洲欧美在线免费观看| 亚洲无av在线中文字幕| 国产精品免费电影| 国产精品海角社区在线观看| 一区二区三区在线播放欧美| 成人免费在线视频网站| 日本一本a高清免费不卡| 欧美性xxxx极品hd满灌| 91精品国产91久久久| 国色天香2019中文字幕在线观看| 久久久av一区| 911国产网站尤物在线观看| 久久九九亚洲综合| 欧美精品videofree1080p| 国产在线精品一区免费香蕉| 国产一区二区三区在线观看视频| 亚洲国产91精品在线观看| 欧美老女人在线视频| 米奇精品一区二区三区在线观看| 另类色图亚洲色图| 国产婷婷色综合av蜜臀av| 久久综合色影院| 亚洲电影在线观看| 九九精品视频在线观看| 最新国产成人av网站网址麻豆| 亚洲欧美中文字幕在线一区| 久久精品人人爽| 91久久久久久久久久久久久| 成人中心免费视频| 亚洲免费av电影| 欧美成人小视频| 国产视频久久久| 欧美极品少妇与黑人| 日韩男女性生活视频| 日韩av在线免费播放| 欧美日韩国产区| 粉嫩av一区二区三区免费野| 日韩精品在线播放| 久久久在线视频| 欧美一级片在线播放| 国产在线观看91精品一区| 国产精品视频大全| 日韩亚洲第一页| 国产精品久久久久久av福利| 欧美野外猛男的大粗鳮| 欧美在线视频一区| 成人精品视频久久久久| 亚洲人a成www在线影院| 久久久久久国产免费| 亚洲人精选亚洲人成在线| 国产精品午夜国产小视频| 欧美又大粗又爽又黄大片视频| 国产精品一区二区在线| 亚洲欧美国产日韩中文字幕| 5566日本婷婷色中文字幕97| 麻豆国产精品va在线观看不卡| 亚洲国产精品va在线看黑人| 亚洲国产高清高潮精品美女| 欧美成人精品一区二区三区| 狠狠干狠狠久久| 一区二区三区四区精品| 亚洲色图偷窥自拍| 日本aⅴ大伊香蕉精品视频| 国产日韩中文字幕在线| 91久久精品国产91久久| 亚洲国产精品久久久| 精品亚洲aⅴ在线观看| 日本亚洲欧美成人| 中文字幕久精品免费视频| 91在线免费视频| 日韩av一区二区在线观看| 欧美午夜精品在线| 精品久久久中文| 国产美女高潮久久白浆| 九九精品在线视频| 久久精品夜夜夜夜夜久久| 国产精品国产亚洲伊人久久| 91精品国产免费久久久久久|