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

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

PAT甲級1087

2019-11-11 03:54:04
字體:
來源:轉載
供稿:網友

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
欧美怡红院视频一区二区三区| 日韩中文字幕在线视频| 亚洲精品白浆高清久久久久久| 国产精品jvid在线观看蜜臀| 欧美成人三级视频网站| 国产美女91呻吟求| 欧美精品videos另类日本| 成人中心免费视频| 不卡中文字幕av| 精品久久久香蕉免费精品视频| 中文字幕在线日韩| 久久夜色精品国产亚洲aⅴ| 亚洲精品国产精品久久清纯直播| 久久夜精品va视频免费观看| 国产一区二区动漫| 欧美日韩成人在线播放| 欧美性猛交xxxx免费看久久久| 久久精品视频网站| 亚洲视频日韩精品| 最近的2019中文字幕免费一页| 亚洲精品久久久久久久久久久| 欧美老肥婆性猛交视频| 中文字幕在线观看亚洲| 黄色成人av在线| 国产欧美日韩丝袜精品一区| 97视频在线观看视频免费视频| 国产精品视频中文字幕91| www.午夜精品| 国产成人啪精品视频免费网| 亚洲国产精品福利| 欧美性猛交xxxx偷拍洗澡| 精品无人区太爽高潮在线播放| 午夜精品久久久久久久99黑人| 国产精品网红直播| 亚洲国产精品久久久久| 精品网站999www| 久久精品成人一区二区三区| 91探花福利精品国产自产在线| 91精品国产高清久久久久久久久| 亚洲国产成人av在线| 国产午夜精品视频免费不卡69堂| 国产精品视频资源| 爽爽爽爽爽爽爽成人免费观看| 在线亚洲欧美视频| 91精品国产高清久久久久久久久| 亚洲色图50p| 中文字幕在线成人| 国产欧美在线看| 欧美成年人视频| 中文字幕av一区中文字幕天堂| www欧美xxxx| 亚洲欧洲日产国产网站| 91精品国产一区| 国产日本欧美视频| 久久伊人精品视频| 91精品国产高清自在线看超| 日本欧美中文字幕| 亚洲伊人成综合成人网| 欧美日韩国产精品一区二区三区四区| 欧美在线免费看| 国产精品美女久久久免费| 国产主播喷水一区二区| 国产精品96久久久久久又黄又硬| 伊人久久久久久久久久久久久| 日韩中文在线不卡| 欧美极品少妇xxxxⅹ免费视频| 国产精品亚洲自拍| 97av视频在线| 尤物99国产成人精品视频| 欧美激情极品视频| 国产精品福利久久久| 久久资源免费视频| 热久久免费视频精品| 这里精品视频免费| 国产精品视频免费观看www| 在线观看国产精品91| 成人欧美在线观看| 成人h视频在线观看播放| 久久久www成人免费精品| 日韩精品极品视频免费观看| 国产精品美女免费看| 51久久精品夜色国产麻豆| 日韩视频中文字幕| 激情av一区二区| 国产一区二区成人| 日韩精品视频免费| 日韩精品免费观看| 国内久久久精品| 97视频国产在线| 久久影视三级福利片| 久久久久久亚洲精品不卡| 97国产精品免费视频| 亚洲高清不卡av| 成人精品视频在线| 中文字幕av一区二区三区谷原希美| 亚洲欧美日韩精品久久亚洲区| 久久久噜噜噜久久久| 欧美精品生活片| 日韩欧亚中文在线| 亚洲欧美变态国产另类| 国产精品久久久久久久app| 国内精品久久久| 国产在线观看91精品一区| 久久久久久久久网站| 日韩国产欧美精品在线| 精品国产福利在线| 国产欧美在线视频| 亚洲在线免费观看| 欧美成人午夜视频| 国产中文字幕91| 最近2019年手机中文字幕| 久久精品99久久久香蕉| 国产极品jizzhd欧美| 草民午夜欧美限制a级福利片| 国产精品老女人精品视频| 欧美精品www在线观看| 国产美女精品视频免费观看| 久久亚洲精品一区| 久久婷婷国产麻豆91天堂| 久久夜色精品国产| 亚洲九九九在线观看| 国模叶桐国产精品一区| 亚洲欧美另类中文字幕| 影音先锋日韩有码| 欧美自拍大量在线观看| 国产成人自拍视频在线观看| 欧美日韩国产一区中文午夜| 亚洲精品永久免费| 国产精品国产三级国产aⅴ9色| 性欧美在线看片a免费观看| 欧美性视频在线| 久久免费国产精品1| 亚洲一区第一页| 久久99国产精品久久久久久久久| 免费99精品国产自在在线| 欧美激情国产精品| 日韩亚洲精品电影| 国产精品黄页免费高清在线观看| 欧美在线一级va免费观看| 欧美—级高清免费播放| 久久视频在线看| 欧美激情乱人伦| 日韩av在线高清| 91精品国产高清自在线| 色99之美女主播在线视频| 成人美女av在线直播| 欧美极品少妇xxxxⅹ喷水| 亚洲精品456在线播放狼人| 成人国产精品日本在线| 欧美成人高清视频| 欧美日韩国产丝袜另类| 国产午夜精品麻豆| 国产精品jizz在线观看麻豆| 欧美性猛交xxxx免费看漫画| 久久躁狠狠躁夜夜爽| 在线播放国产一区中文字幕剧情欧美| 国产精品中文字幕在线观看| 国产午夜精品视频免费不卡69堂| 中文字幕亚洲一区| 欧美人在线视频| 久久精品99国产精品酒店日本| 日韩在线观看免费网站| 久久av在线看| 亚洲最新视频在线|