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

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

PAT甲級1087

2019-11-11 03:21:18
字體:
來源:轉載
供稿:網友

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
欧美亚洲成人免费| xxxxx成人.com| 91美女福利视频高清| 国产一区私人高清影院| 亚洲国产精品999| 欧美成人在线免费| 国产精品欧美日韩| 国产日韩视频在线观看| 久久精品91久久香蕉加勒比| 亚洲色图13p| 欧美日在线观看| 97视频在线观看免费高清完整版在线观看| 国产在线999| 中文字幕日韩免费视频| 亚洲福利视频免费观看| 国产精品久久久久久av| 亚洲精品久久久久久下一站| 一区二区三区黄色| 国产精品99久久99久久久二8| 欧美国产日韩在线| 久久人体大胆视频| 久久久免费精品视频| 国产一区在线播放| 欧美激情精品久久久久| 第一福利永久视频精品| 国产亚洲精品一区二区| 91久久在线观看| 国产午夜精品视频| 久久久久久久久久久av| 国产经典一区二区| 亚洲成av人片在线观看香蕉| 久热精品视频在线免费观看| 国产日韩视频在线观看| 136fldh精品导航福利| 亚洲va久久久噜噜噜| 欧美日韩在线视频观看| 欧美大人香蕉在线| 久久亚洲精品中文字幕冲田杏梨| 亚洲成年人影院在线| 美女福利精品视频| 国产91亚洲精品| 成人激情视频网| 欧美一级成年大片在线观看| 国产91ⅴ在线精品免费观看| 日韩中文字幕第一页| 亚洲 日韩 国产第一| 久久久久久久999精品视频| 欧美猛交免费看| 国产91色在线|免| 成人欧美一区二区三区黑人| 日韩高清av一区二区三区| 88国产精品欧美一区二区三区| 亚洲一区二区久久久久久久| 亚洲日本欧美中文幕| 久久视频精品在线| 日韩成人激情影院| 92福利视频午夜1000合集在线观看| 亚洲女人被黑人巨大进入| 亚洲精品久久在线| 91精品久久久久久久久久久久久| 国产成人精品免费视频| 国产精品一区av| 日韩欧美在线视频免费观看| 欧美激情亚洲一区| 色综合导航网站| 国产精品久久久久久av福利软件| 97国产精品视频人人做人人爱| 亚洲福利视频网| 九九九久久国产免费| 国语自产精品视频在线看抢先版图片| 57pao成人永久免费视频| 欧美日韩国产综合新一区| 欧美午夜久久久| 一本大道香蕉久在线播放29| 日韩在线视频国产| 欧美激情免费观看| 日韩欧美亚洲综合| 精品成人av一区| 国产精品影片在线观看| 欧美性xxxxx极品| 色青青草原桃花久久综合| 精品国产鲁一鲁一区二区张丽| 欧美激情日韩图片| 精品福利在线观看| 91亚洲永久免费精品| 不用播放器成人网| 欧美成人一区二区三区电影| 国产精品尤物福利片在线观看| 国产精品女主播视频| 日韩美女在线播放| 久久久在线视频| 欧美一区二区.| 91精品免费久久久久久久久| 久久久久久亚洲精品| 欧美日韩国产999| 美日韩丰满少妇在线观看| 久久影院中文字幕| 国产精品免费视频久久久| 欧美国产在线视频| 国产精品久久久久久久久久小说| 国产深夜精品福利| 国产精品日日做人人爱| 亚洲欧美制服第一页| 日韩成人av在线| 亲子乱一区二区三区电影| 欧美日韩不卡合集视频| 国产亚洲精品91在线| 日韩欧美aⅴ综合网站发布| 亚洲精品一区久久久久久| 91精品国产91久久久久| 91精品啪在线观看麻豆免费| 日韩亚洲精品视频| 日韩电影在线观看中文字幕| 亚洲成色777777女色窝| 亚洲男人av电影| 亚洲美女喷白浆| 亚洲综合中文字幕在线| 欧美精品videossex88| 色噜噜狠狠狠综合曰曰曰88av| 国产一区二区久久精品| 亚洲人成电影网站色…| 91精品视频在线免费观看| 国产女同一区二区| 国产成人97精品免费看片| 日韩视频在线观看免费| 自拍偷拍亚洲精品| 欧美一区深夜视频| 国产精品成人免费电影| 欧美激情视频在线| 久久精品国产v日韩v亚洲| 国产精品久久久久久一区二区| 日韩av理论片| 91久热免费在线视频| 一区二区成人av| 成人美女免费网站视频| 欧美日韩国产成人在线| 久久韩剧网电视剧| 久久男人的天堂| 国产欧美精品xxxx另类| 色偷偷91综合久久噜噜| 欧美另类高清videos| 亚洲国产精品久久久久久| 精品无人国产偷自产在线| 国产精品一区专区欧美日韩| 日韩一中文字幕| 国产精品成人av在线| 日韩hd视频在线观看| 精品毛片三在线观看| 97视频网站入口| 国产精品视频在线观看| 欧美一级淫片丝袜脚交| 国产精品扒开腿做爽爽爽的视频| 38少妇精品导航| 在线日韩精品视频| 欧美中在线观看| 亚洲欧美第一页| 久久免费视频在线观看| 久久综合亚洲社区| 国产精品综合网站| 国产69精品99久久久久久宅男| 国产福利精品视频| 久久精品男人天堂| 国产成人精品在线视频| 日本午夜精品理论片a级appf发布|