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

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

PAT甲級1087

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

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
亚洲韩国青草视频| 亚洲精品动漫久久久久| 国产成人亚洲综合青青| 日韩免费不卡av| 伊人伊人伊人久久| 狠狠爱在线视频一区| 黑人巨大精品欧美一区二区三区| 国内精品久久久久久中文字幕| 91精品久久久久久久久久久久久久| 欧美色另类天堂2015| 亚洲精品在线看| 1769国产精品| 欧美午夜丰满在线18影院| 亚洲午夜精品久久久久久性色| 亚洲第一中文字幕| 在线电影欧美日韩一区二区私密| 久久久久久久久久婷婷| 久久久天堂国产精品女人| 国产一区二区欧美日韩| 欧美xxxx综合视频| 精品国产乱码久久久久久婷婷| 国产精品18久久久久久麻辣| 国产午夜精品理论片a级探花| 欧美日韩成人精品| 欧美激情啊啊啊| 黄色成人av网| 亚洲网站视频福利| 午夜精品一区二区三区在线播放| 成人午夜在线视频一区| 欧美大成色www永久网站婷| 亚洲国产婷婷香蕉久久久久久| 91精品国产电影| 日韩精品在线视频观看| 日本中文字幕成人| 日韩精品视频观看| 久久人人爽人人爽人人片av高请| 亚洲最新视频在线| 欧美精品午夜视频| 精品久久久久久国产| 久久久久久久久久av| 精品国产精品自拍| 成人国产精品色哟哟| 这里只有精品在线播放| 欧美最猛黑人xxxx黑人猛叫黄| 欧美激情在线观看| 51色欧美片视频在线观看| 亚洲综合自拍一区| 91禁国产网站| 97国产精品视频人人做人人爱| 亚洲国产精品va在线| 福利微拍一区二区| 色综合亚洲精品激情狠狠| 欧美激情一区二区久久久| 亚洲精品网站在线播放gif| 亚洲精品99久久久久中文字幕| 日韩一区视频在线| 亚洲国产成人在线视频| 2019精品视频| 国产美女被下药99| 亚洲老板91色精品久久| 韩国三级日本三级少妇99| 亚洲人成在线观看| 欧美日韩一区二区在线播放| 45www国产精品网站| 久久91精品国产91久久久| 久久99精品久久久久久青青91| 久久九九免费视频| 国产精品久久视频| 国产精品久久久久久久久久新婚| 在线日韩中文字幕| 日韩视频免费中文字幕| 国产香蕉97碰碰久久人人| 欧美最近摘花xxxx摘花| 日本韩国欧美精品大片卡二| 久久免费视频观看| 久久精品国产2020观看福利| 色婷婷综合久久久久中文字幕1| 欧美激情中文字幕在线| 亚洲国产97在线精品一区| 亚洲视频在线看| 精品国偷自产在线视频| 久久亚洲精品一区| 亚洲免费影视第一页| 亚洲人成伊人成综合网久久久| 亚洲毛片一区二区| 国产97人人超碰caoprom| 国产91精品网站| 欧美一区三区三区高中清蜜桃| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲成avwww人| 亚洲韩国青草视频| 一本色道久久综合亚洲精品小说| 91影院在线免费观看视频| 色婷婷综合久久久久中文字幕1| 久久人体大胆视频| 亚洲一区二区免费| www日韩欧美| 亚洲成人三级在线| 欧美日韩免费网站| 亚洲国产精品悠悠久久琪琪| 精品偷拍各种wc美女嘘嘘| 国产va免费精品高清在线| 国产成人精品久久亚洲高清不卡| 亚洲欧洲成视频免费观看| 国模精品一区二区三区色天香| 日韩欧美精品网址| 欧美激情精品久久久久久大尺度| 成人激情在线观看| 亚洲国产免费av| 欧美激情在线有限公司| 国产精品丝袜久久久久久高清| 国产999精品| 91国内产香蕉| 97视频在线观看亚洲| 欧美国产精品日韩| 国产中文字幕亚洲| 精品视频中文字幕| 久久91亚洲精品中文字幕奶水| 日韩精品久久久久| 欧美视频在线视频| 国产一区二区黑人欧美xxxx| 久久亚洲精品一区| 日韩精品在线免费| 欧美猛交免费看| 成人免费视频xnxx.com| 69久久夜色精品国产69乱青草| 国产精品毛片a∨一区二区三区|国| 久久亚洲精品一区二区| 欧美色视频日本高清在线观看| 成人午夜两性视频| 伊人精品在线观看| 亚洲精品免费在线视频| 欧美激情喷水视频| 亚洲欧美一区二区三区久久| 欧美成人亚洲成人日韩成人| 欧美在线视频免费播放| 日韩视频永久免费观看| 欧美性猛交xxxx乱大交极品| 91产国在线观看动作片喷水| 成人激情电影一区二区| 欧美电影在线免费观看网站| 国产精品丝袜久久久久久高清| 国产精品69久久| 亚洲xxxx妇黄裸体| 日韩高清电影免费观看完整版| 亚洲精品美女久久| 成人精品久久av网站| 欧美老少做受xxxx高潮| 亚洲国产精品字幕| 热99精品只有里视频精品| 国产97色在线| 亚洲男人的天堂网站| 欧美野外猛男的大粗鳮| 一道本无吗dⅴd在线播放一区| 欧美黑人极品猛少妇色xxxxx| 日韩福利在线播放| 久久久久久69| 欧美午夜视频在线观看| 中文字幕日韩在线视频| 欧美黑人性视频| 欧美日本亚洲视频| 欧美亚洲一区在线| 色综合色综合久久综合频道88| 久久精品99无色码中文字幕|