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

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

PAT甲級1087

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

1087. All Roads Lead to Rome (30)

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

Indeed there are many different tourist routes from our city to Rome. You are supposed to find your clients the route with the least cost while gaining the most happiness.

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 positive integers N (2<=N<=200), the number of cities, and K, the total number of routes between pairs of cities; followed by the name of the starting city. The next N-1 lines each gives the name of a city and an integer that rePResents the happiness one can gain from that city, except the starting city. Then K lines follow, each describes a route between two cities in the format "City1 City2 Cost". Here the name of a city is a string of 3 capital English letters, and the destination is always ROM which represents Rome.

Output Specification:

For each test case, we are supposed to find the route with the least cost. If such a route is not unique, the one with the maximum happiness will be recommended. If such a route is still not unique, then we output the one with the maximum average happiness -- it is guaranteed by the judge that such a solution exists and is unique.

Hence in the first line of output, you must print 4 numbers: the number of different routes with the least cost, the cost, the happiness, and the average happiness (take the integer part only) of the recommended route. Then in the next line, you are supposed to print the route in the format "City1->City2->...->ROM".

Sample Input:
6 7 HZHROM 100PKN 40GDN 55PRS 95BLN 80ROM GDN 1BLN ROM 1HZH PKN 1PRS ROM 2BLN HZH 2PKN GDN 1HZH PRS 1Sample Output:
3 3 195 97HZH->PRS->ROM
#include<cstdio>#include<string>#include<iostream>#include<map>#include<vector>#include<queue>#include<algorithm>using namespace std;struct Node{	int v, dis;}node;struct compare{	bool Operator()(Node n1, Node n2)	{		return n1.dis > n2.dis;	}};const int maxn = 210;const int INF = 1000000000;int N, K;string startCity;vector<int> pre[maxn];bool vis[maxn] = { false };int d[maxn];int happiness[maxn];vector<Node> Adj[maxn];map<string, int> s2i;map<int, string> i2s;vector<int> path, tempPath;int id = 0;//給城市編號int StringToInt(string s){	if (s2i.find(s) == s2i.end())	{		s2i[s] = ++id;		i2s[id] = s;		return id;	}	else		return s2i[s];}void Dijkstra(int s){	fill(d, d + maxn, INF);	d[s] = 0;	priority_queue<Node, vector<Node>, compare> Q;	node.dis = 0; node.v = 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();		}		for(int i=0;i<Adj[u].size();i++)		{			int v = Adj[u][i].v;			int dis = Adj[u][i].dis;			if (!vis[v])			{				if (d[u] + dis < d[v])				{					d[v] = d[u] + dis;					pre[v].clear();					pre[v].push_back(u);					node.v = v; node.dis = d[v];					Q.push(node);				}				else if (d[u] + dis == d[v])				{					pre[v].push_back(u);				}			}		}	}}int start = 0;int opthappinesssum = -1;int optaveragehappiness = INF;int countRoute = 0;void DFS(int v){	if (v == start)	{		countRoute++;		tempPath.push_back(v);		int happinesssum = 0, averagehappiness = 0;		for (int i = 0; i < tempPath.size(); i++)		{			int id = tempPath[i];			happinesssum += happiness[id];		}		averagehappiness = happinesssum / (tempPath.size() - 1);		if (opthappinesssum < happinesssum)		{			opthappinesssum = happinesssum;			path = tempPath;			optaveragehappiness = averagehappiness;//這里一定要注意更新一下		}		else if (opthappinesssum == happinesssum)		{			if (optaveragehappiness < averagehappiness)			{				optaveragehappiness = averagehappiness;				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--)	{		cout << i2s[path[i]];		if (i > 0)			cout << "->";		else			cout << endl;	}}int main(){	cin >> N >> K >> startCity;	s2i[startCity] = 0;	i2s[0] = startCity;	string s;	for (int i = 0; i < N-1; i++)	{		cin >> s;		int v = StringToInt(s);		cin >> happiness[v];	}	string s1; int cost;	for (int i = 0; i < K; i++)	{		cin >> s >> s1 >> cost;		int u = StringToInt(s);		int v = StringToInt(s1);		node.v = v; node.dis = cost;		Adj[u].push_back(node); node.v = u;		Adj[v].push_back(node);	}	Dijkstra(0);	DFS(s2i["ROM"]);	cout << countRoute << " " << d[s2i["ROM"]] << " "		<< opthappinesssum << " " << optaveragehappiness		<< endl;	PrintPath();}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线98福利播放视频| 国产美女被下药99| 欧美国产日韩精品| 另类美女黄大片| 亚洲精品黄网在线观看| 欧美成人全部免费| 精品动漫一区二区三区| 日韩女优人人人人射在线视频| 456国产精品| 亚洲天堂成人在线| 亚洲欧美在线看| 97在线看免费观看视频在线观看| 国产精品极品在线| 亚洲999一在线观看www| 亚洲国产一区自拍| 欧美在线影院在线视频| 成人高清视频观看www| 日韩欧美国产中文字幕| 成人精品网站在线观看| 亚洲一区二区中文字幕| 欧美主播福利视频| 亚洲国产精品福利| 欧美做爰性生交视频| 尤物tv国产一区| 成人激情电影一区二区| 亚洲一二三在线| 1769国产精品| 91精品91久久久久久| 国产精品r级在线| 精品久久久久久久久久久久久| 亚洲伊人成综合成人网| 久久手机精品视频| 欧美性视频网站| 懂色av中文一区二区三区天美| 中文字幕欧美日韩精品| 91精品啪在线观看麻豆免费| 尤物精品国产第一福利三区| 国产精品wwwwww| 久久夜色精品亚洲噜噜国产mv| 国模私拍一区二区三区| 欧美日韩国产中文字幕| 亚洲精品理论电影| 亚洲桃花岛网站| 欧美电影《睫毛膏》| 欧洲精品久久久| 国产精品免费久久久久久| 色悠悠久久88| 国产精品一区二区av影院萌芽| 亚洲综合在线播放| 国产亚洲精品久久久久久777| 成人美女av在线直播| 日韩电影免费在线观看| 免费不卡在线观看av| 97国产精品久久| 欧美性猛交丰臀xxxxx网站| 成人免费视频网址| 国产日韩欧美影视| 97香蕉久久夜色精品国产| 久久久久国产精品www| 成人性生交大片免费看小说| 久久国产精品99国产精| 欧美极品少妇xxxxⅹ喷水| 亚洲成人av片| 国产日本欧美一区二区三区在线| 中文字幕日韩欧美| 美女视频黄免费的亚洲男人天堂| 欧美国产日本高清在线| 91精品国产高清自在线| 国产高清在线不卡| 国产亚洲欧美视频| www欧美xxxx| 亚洲精品美女免费| 欧美日韩视频免费播放| 久久亚洲精品视频| 亚洲女人被黑人巨大进入al| 综合av色偷偷网| 最近2019中文字幕一页二页| 国产精品中文字幕久久久| 午夜精品久久久久久久99黑人| 日本精品一区二区三区在线| 欧美激情一区二区三区成人| 尤物99国产成人精品视频| 成人黄色短视频在线观看| 欧美黑人国产人伦爽爽爽| 欧美另类老女人| 精品久久久久久中文字幕大豆网| 欧美激情免费视频| 日韩三级影视基地| 黑人极品videos精品欧美裸| 中文字幕久久久av一区| 欧美日本中文字幕| 久久精视频免费在线久久完整在线看| 欧美激情伊人电影| 亚洲aⅴ男人的天堂在线观看| 欧美黄色www| 亚洲美女免费精品视频在线观看| 国产午夜精品视频免费不卡69堂| 亚洲精品美女视频| 亚洲天堂av图片| 97精品国产97久久久久久春色| 国内精品久久久久久久久| 亚洲国产精品电影在线观看| 麻豆成人在线看| 国产香蕉一区二区三区在线视频| 国产精品青青在线观看爽香蕉| 国产精品69精品一区二区三区| 九九久久精品一区| 亚洲图片在区色| 国产精品爱啪在线线免费观看| 久久精品视频导航| 亚洲大胆人体在线| 好吊成人免视频| 国产精品第七十二页| 精品中文字幕在线2019| 欧美日韩国产第一页| 国内精品久久久久久中文字幕| 久久琪琪电影院| 国产有码在线一区二区视频| 国产亚洲欧美视频| 亚洲男人天堂2023| 美女视频久久黄| 国产精品久久久久久久久久东京| 最近更新的2019中文字幕| 日韩高清有码在线| 中文字幕精品久久| 亚洲精品在线观看www| 国产精品久久久久久久午夜| 91精品久久久久久久久久| 久久精品一本久久99精品| 亚洲精品在线不卡| 国产成人久久久精品一区| 国产欧美在线观看| 亚洲成人性视频| 亚洲视频在线视频| 中文字幕欧美日韩| 久久国产精品视频| 国产精品欧美日韩一区二区| 91精品久久久久久| 国产精品偷伦免费视频观看的| 国内免费久久久久久久久久久| 欧美成人午夜视频| 国产成人一区三区| 久久久久久久久国产精品| 川上优av一区二区线观看| 欧美黑人巨大精品一区二区| 日韩av中文字幕在线免费观看| 国产suv精品一区二区三区88区| 欧美成年人视频网站| 国产成+人+综合+亚洲欧洲| 国产亚洲激情在线| 国产99久久久欧美黑人| 国产日韩av在线播放| 日韩成人网免费视频| 亚洲国产精品视频在线观看| 日韩一区二区三区在线播放| 国产成人精品视频| 9.1国产丝袜在线观看| 在线精品国产成人综合| 欧美主播福利视频| 在线观看欧美视频| 国产精品视频区| 日韩av影视综合网| 久久久免费精品| 人体精品一二三区|