4083:我爱北大

总时间限制: 
1000ms 
内存限制: 
65536kB
描述

“红楼飞雪,一时英杰……”耳边传来了那熟悉的歌声。而这,只怕是我最后一次听到这个声音了。

想当年,我们曾经怀着豪情壮志,许下心愿,走过静园,走过一体,走过未名湖畔的每个角落。

想当年,我们也曾慷慨高歌,瞻仰民主与科学,瞻仰博雅塔顶,那百年之前的遗韵。

没错,我爱北大,我爱这个校园。

然而,从当我们穿上学位服的那一刻起,这个校园,就再也不属于我。它只属于往事,属于我的回忆。

没错,这,是我在北大的最后一日。此时,此景,此生,此世,将刻骨难忘。

再也没有了图书馆自习的各种纷纭,再也没有了运动场上的挥汗如雨,有的,只是心中永远的不舍,与牵挂。

夜,已深。人,却不愿离去。天边有一颗流星划过,是那般静,宁谧。

忍不住不回头,我的眼边,有泪光,划过。

这时候,突然有一位路人甲从你身旁出现,问你:从XX到XX怎么走?

索性,就让我再爱你一次。因为,北大永远在你心中。北大的地图,永远在你的心中。

轻手挥扬,不带走一分云彩。

输入
输入分为三个部分。
第一个部分有P+1行,第一行为一个整数P,之后的P行表示北大的地点。地点长度不超过20个字符。
第二个部分有Q+1行,第一行为一个整数Q,之后的Q行每行分别为两个字符串与一个整数,表示这两点有直线的道路,并显示二者之间的矩离(单位为米)。
第三个部分有R+1行,第一行为一个整数R,之后的R行每行为两个字符串,表示需要求的路线。
p<=30,Q<=50,R<=20
输出
输出有R行,分别表示每个路线最短的走法。其中两个点之间,用->(矩离)->相隔。
样例输入
6
XueYiShiTang
CanYinZhongXin
XueWuShiTang
XueYiXiaoBaiFang
BaiNianJiangTang
GongHangQuKuanJi
6
XueYiShiTang CanYinZhongXin 80
XueWuShiTang CanYinZhongXin 40
XueYiShiTang XueYiXiaoBaiFang 35
XueYiXiaoBaiFang XueWuShiTang 85
CanYinZhongXin GongHangQuKuanJi 60
GongHangQuKuanJi BaiNianJiangTang 35
2
XueYiXiaoBaiFang BaiNianJiangTang
GongHangQuKuanJi GongHangQuKuanJi
样例输出
XueYiXiaoBaiFang->(35)->XueYiShiTang->(80)->CanYinZhongXin->(60)->GongHangQuKuanJi->(35)->BaiNianJiangTang
GongHangQuKuanJi
这个题需要注意的一点在于,输入的时候可能出现重边,即可能a到b的路径他输入两次,后面一次比前面一次还要大,这样就会导致最后的结果错误。我在这里找了很久才找到这个问题。其他主要就是使用Floyd算法来求最短路径和所经过的点。


#include<iostream>
#include<vector>
#include<string>
#include<map>
#define INT_MAX 100000000using namespace std;
map<int, string> num_lable;
map<string, int> lable_num;string showpath(int a, int b, vector<vector<int>> path, vector<vector<int>> graph)
{string rt = "";vector<int> temppath = path[a];vector<string> result;result.push_back(num_lable[b]);int cur = b;while (temppath[cur]!=-1){int t = temppath[cur];int dis = graph[cur][t];result.push_back("("+to_string(dis)+")");result.push_back(num_lable[t]);cur = t;}for (int i = result.size() - 1; i >= 0; i--){if (i != 0)rt+= result[i] +"->";elsert+=result[i];}return rt;}int main()
{int p;cin >> p;for (int i = 0; i < p; i++){string tems;cin >> tems;num_lable.insert(pair<int, string>(i, tems));lable_num.insert(pair<string, int>(tems, i));}vector<vector<int>> grah(p, vector<int>(p, INT_MAX));for (int i = 0; i < p; i++){grah[i][i] = 0;}int q;cin >> q;for (int i = 0; i < q; i++){string a, b;int l;cin >> a >> b >> l;int numa = lable_num[a];int numb = lable_num[b];if(l<grah[numa][numb]){grah[numa][numb] = l;grah[numb][numa] = l;}}vector<vector<int>> dis(p, vector<int>(p, 0));//定义距离vector<vector<int>> path(p, vector<int>(p, -1));//定义路径for (int i = 0; i < p; i++){for (int j = 0; j < p; j++){dis[i][j] = grah[i][j];if (i != j&&grah[i][j]<INT_MAX)path[i][j] = i;}}for (int node = 0; node < p; node++){for (int i = 0; i < p; i++){for (int j = 0; j < p; j++){if (dis[i][j]>(dis[i][node] + dis[node][j])){dis[i][j] = dis[i][node] + dis[node][j];path[i][j] = path[node][j];}}}//   displayPath(path);}vector<string> result;int r;cin >> r;for (int i = 0; i < r; i++){string a, b;cin >> a >> b;if (a == b)result.push_back(a);else {int numa = lable_num[a];int numb = lable_num[b];result.push_back(showpath(numa, numb, path, grah));}}for (int i = 0; i < result.size(); i++){cout << result[i] << endl;}system("pause");
}

百炼:4083:我爱北大相关推荐

  1. 又一北大系AI公司浮出水面,百炼智能宣布获千万元天使投资

    郭一璞 发自 北大隔壁  量子位 报道 | 公众号 QbitAI 5月4日,是≤28岁er可以放假半天的日子,也是北大校庆. 2018年的这一天,北大120周年校庆之际,北大系AI公司百炼智能也决定正 ...

  2. 那些大学简称背后的“爱恨情仇”:东西南北中,就剩北大没人抢了

    春节期间,免不了要被亲戚问在哪读大学? >>>> 我:华中大啦 亲戚:?有这大学 我:华中科技大学 亲戚:奥~华科啊,华科就华科,华中大是啥啊 我:委屈啊,学校官方简称是华中大 ...

  3. 北京大学计算机系文科可以学吗,近150人进北大 中文专业成文科生最爱

    四川高考录取进行时>>> 近150人进北大 中文专业成文科生最爱 记者从北京大学四川招生组获悉,北京大学在四川的招生录取工作全部完成,共有近150名学生进入北大.四川大批高分考生踊跃 ...

  4. 北大火星人最爱教育事业

    北大火星人最爱教育事业 袁萌  陈启清  5月13日

  5. 如今,进北大要看脸了

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 高考分数刚刚出来,各地考生与家长还在纠结报志愿的时候,进北大要看脸了. 嗯,是说进北大校门. 今天,北大正式启用人脸识别门禁,进入校门可 ...

  6. 【2019保研经验】清华贵系、清华软院、北大叉院、中科院自动化所等

    2019年9月29日23点00分,我收到了清华大学计算机科学与技术系的待录取通知,也意味着我几个月的保研工作彻底结束,并且取得了我所能取得的最好成绩.如今,全部的保研工作已全部结束,我也是时候要摆脱懒 ...

  7. 百炼智百炼智能获5000万元Pre-A轮融资,深耕智能获客赛道

    出品 | AI科技大本营(ID:rgznai100) 2019年7月9日,百炼智能正式宣布完成5000万元Pre-A轮融资.该轮融资由东方嘉富领投,上市公司任子行.元投资本和酷我音乐创始人雷鸣等投资者 ...

  8. 清华北大“世界排名断崖式下跌”?

    作者 | 琥珀 出品 | AI 科技大本营 为什么人们疯狂地爱着排名? 基本每过一年公布的全球大学排行榜,都会吸引不少的利益相关方甚至吃瓜群众的集体关注.每每此时,网络上泛滥着的却是眼花缭乱.无法令人 ...

  9. 北大研究人员这次发现了AI「躺平」原因,都是数据集的错!

    点击上方"视学算法",选择"星标"公众号 重磅干货,第一时间送达 转自| 新智元 来源 | arXiv 编辑 | 好困 你有没有发现,每当AI发现了偷懒的小技巧 ...

最新文章

  1. 全面梳理百度世界大会:量产L4乘用车和两款音箱 还有挖掘机技术
  2. 缓存淘汰算法 (http://flychao88.iteye.com/blog/1977653)
  3. jsoncpp-src-0.5.0.tar.gz 源码错误!!!!
  4. Android深度探索(卷1)HAL与驱动开发第六章总结
  5. bigdecimal 平均数_MapReduce实例-必须用Combine--求平均数
  6. Android binder 框架和学习资料
  7. php7 返回静态类,PHP7 – 未捕获错误:访问未声明的静态属性
  8. Smack Extensions用户手册
  9. JS - Object and Property的删除用法
  10. Ubuntu9.04升级到9.10后的问题及其解决方法
  11. Big-Endian 和 Little-Endian 模式的区别
  12. 电脑C盘怎么清理到最干净
  13. 最短路算法详解(Dijkstra/SPFA/Floyd)
  14. 40-50岁的男人喜欢什么样的女人呢?
  15. Python的一个图片识别工具-PyTesseract(Win10)
  16. 软件应用无所不在 正吞噬整个世界
  17. 新浪微博AIR客户端开发---登陆
  18. Ubuntu18.04 安装升级pip至20.2.2 坎坷过程
  19. manjaro安装mpv
  20. 在ROS param 的使用中有时无法正确传入参数的问题记录

热门文章

  1. 【MicroPython】microbit micropython常用函数(API)
  2. AI极链云新手教程(最快上手极链云服务器)
  3. 分布式事务-Atomikos解决多数据源事务问题
  4. 应对劳动力红利瓶颈的对策
  5. 转 Android视频播放软解与硬解的区别
  6. java 两个list排序_java实现两个不同list对象合并后并排序
  7. linux下sed编辑器的使用详解
  8. WSW/OVA/MnO2-PEG-ICG 肝靶向多肽WSW/纳米复合物/二氧化锰纳米片-聚乙二醇-吲哚菁绿
  9. OAI 5G核心网安装并连接到gNB
  10. 云南建水古城二日游攻略