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

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

PAT甲級1087

2019-11-11 05:23:21
字體:
來源:轉載
供稿:網友

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
欧美一乱一性一交一视频| 国产精品久久久久国产a级| 欧美中文字幕精品| 色婷婷综合成人| 国产日产欧美a一级在线| 91久久精品日日躁夜夜躁国产| 日韩精品视频在线| 亚洲成人aaa| 成人亚洲综合色就1024| 国产精品久久久久久久久久久久久久| 中文字幕不卡在线视频极品| 欧美精品午夜视频| 欧美在线视频免费播放| 海角国产乱辈乱精品视频| 亚洲精品国产免费| 精品偷拍一区二区三区在线看| 亚洲国产精品yw在线观看| 欧美黄色性视频| 欧美性xxxxhd| 欧美肥老太性生活视频| 亚洲第一精品自拍| 国产成人高清激情视频在线观看| 日本a级片电影一区二区| www.亚洲一二| 久热精品在线视频| 欧美中文字幕视频| 亚洲免费伊人电影在线观看av| 亚洲91精品在线观看| 亚洲第一区第二区| 欧美视频在线观看免费网址| 亚洲精品在线看| 粉嫩av一区二区三区免费野| 日本久久中文字幕| 亚洲精品不卡在线| 亚洲在线观看视频网站| 综合国产在线观看| 精品久久久免费| 日韩在线视频免费观看| 91超碰caoporn97人人| 日韩av电影在线播放| 欧美性猛交xxxx富婆弯腰| 亚洲综合精品一区二区| 91亚洲精品久久久久久久久久久久| 精品久久国产精品| 狠狠色狠狠色综合日日小说| 韩国三级电影久久久久久| 亚洲一区二区三区成人在线视频精品| 亚洲综合日韩中文字幕v在线| 91免费国产网站| 国产91对白在线播放| 高清视频欧美一级| 97视频国产在线| 久久久久久久久久久91| 97国产精品视频人人做人人爱| 亚洲黄色免费三级| 久久不射热爱视频精品| 日韩在线观看免费全集电视剧网站| 亚洲色图欧美制服丝袜另类第一页| 国产日韩中文在线| 国产v综合ⅴ日韩v欧美大片| 亚洲精品国产精品乱码不99按摩| 精品久久久香蕉免费精品视频| 日韩精品极品视频免费观看| 日韩电影免费观看中文字幕| 亚洲国产成人av在线| 91产国在线观看动作片喷水| 久久国产精品99国产精| 亚洲理论片在线观看| 国产精品尤物福利片在线观看| 日本免费久久高清视频| 九九久久久久久久久激情| 国产精品三级久久久久久电影| 亚洲欧美日韩中文在线制服| 国产精品热视频| 午夜精品理论片| 欧美黄色性视频| 日韩一区二区在线视频| 久热在线中文字幕色999舞| 中文字幕亚洲专区| 国产精品福利久久久| 国产精品免费在线免费| 性色av一区二区三区在线观看| 亚洲网站在线观看| 久久精品电影网| 国产精品h片在线播放| 97视频在线观看播放| 久久99久久亚洲国产| 欧美极品少妇xxxxⅹ裸体艺术| 69av在线视频| 欧美日韩激情视频| 51色欧美片视频在线观看| 亚洲区在线播放| 亚洲精品v欧美精品v日韩精品| 日韩乱码在线视频| 国产日韩欧美黄色| 91高清视频免费| 日韩欧美第一页| 日韩电影免费在线观看| 国产精品丝袜白浆摸在线| 欧美精品在线免费| 91久久久久久久| 在线观看中文字幕亚洲| 91亚洲国产成人久久精品网站| 亚洲天堂久久av| 美女扒开尿口让男人操亚洲视频网站| 91豆花精品一区| 91精品国产综合久久香蕉的用户体验| 日韩美女在线观看| 成人做爰www免费看视频网站| 成人国产精品久久久| 亚洲国产精品久久久久久| 欧美日韩国产在线| 日本一区二区三区在线播放| 欧美极度另类性三渗透| 97国产suv精品一区二区62| 精品亚洲一区二区三区四区五区| 欧美性猛交视频| 精品色蜜蜜精品视频在线观看| 欧美电影免费观看大全| 亚洲国产天堂网精品网站| 亚洲欧美综合区自拍另类| 亚洲男人天堂古典| 久久天天躁狠狠躁老女人| 亚洲人成电影网站| 欧美成年人视频网站欧美| 久久影视电视剧凤归四时歌| 中文字幕日韩在线视频| 美女精品视频一区| 欧美高跟鞋交xxxxhd| 91精品视频免费| 夜夜嗨av一区二区三区四区| 欧美理论电影在线播放| 亚洲欧美国产一区二区三区| 日韩av高清不卡| 日本91av在线播放| 97精品视频在线观看| 国产精品久久久久久久午夜| 欧美日韩成人网| 国产日韩精品在线| 亚洲人成毛片在线播放| 亚洲男人的天堂在线播放| 中文字幕视频一区二区在线有码| 97超级碰碰碰| 亚洲国产精品va在线看黑人动漫| 国产欧美一区二区三区在线看| 日韩成人黄色av| 亚洲精品999| 国产精品亚洲网站| 日韩av中文在线| 岛国av午夜精品| 51久久精品夜色国产麻豆| 欧美精品videossex88| 日韩精品在线观看一区| 亚洲一区美女视频在线观看免费| 日韩欧美aⅴ综合网站发布| 国产精品成人久久久久| 色狠狠久久aa北条麻妃| 亚洲一级黄色av| 久久久久久午夜| 68精品国产免费久久久久久婷婷| 成人性生交大片免费看视频直播| 亚洲人精选亚洲人成在线| 亚洲精品aⅴ中文字幕乱码| 日本国产高清不卡|