百练4083我爱北大 解析
http://www.bailian.openjudge.cn/practice/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
问题
多源最短路。使用Floyd算法。
注意两点间可能有不止一条边。
题目有两个难点部分:
- Floyd求最短路
- 合理化输出路径。
所以在作Floyd的时候,要定义路径和距离的两个数组。距离是Floyd过程中的限制量,一个很大的距离已经可以作为可达性的表征,所以对路径的初始化没有那么关键。
在输出的时候路径就作为主要因素了,但是路径信息已经存入,所以也就不存在过多的判断问题。可达性由距离的侧面描述转化到路径的直接描述上。
可达性的概念是重要的,第一次WA就是如此:
这相当于默认任意可达。
memset(d, 0x3f, sizeof d);for (int i = 0; i < n; i++){d[i][i] = 0;for (int j = 0; j < n; j++)p[i][j] = i;}
通过和这篇文章的对比,发现问题在于路径更新。
百练4083我爱北大 解析相关推荐
- 百炼:4083:我爱北大
4083:我爱北大 总时间限制: 1000ms 内存限制: 65536kB 描述 "红楼飞雪,一时英杰--"耳边传来了那熟悉的歌声.而这,只怕是我最后一次听到这个声音了. 想 ...
- 北大OJ百练——4075:矩阵旋转(C语言)
百练的这道题很简单,通过率也达到了86%,所以我也就来贴个代码了...下面是题目: 不过还是说一下我的思路: 这道题对一个新来说,可能是会和矩阵的转置相混淆,这题并不是要我们去求矩阵的转置. 这题,我 ...
- 北大培训课动态规划----神奇的口袋(百练2755)
北京大学暑期课<ACM/ICPC竞赛训练> ppt摘取 什么是动态规划? ●递归到动规的一般转化方法 递归函数有n个参数,就定义一个n维的数组,数组 的下标是递归函数参数的取值范围,数组 ...
- 百练1002:方便记忆的电话号码(C++实现,北大软微)
百练1002:方便记忆的电话号码 1-描述 英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:A,B,C -> 2D,E,F -> 3G,H,I -> 4J,K,L -> ...
- 百练,4103,踩方格
百练,4103,踩方格 普通做法:(也可以找规律) #include #include//要调用memset函数,头文件 using namespace std; int visited[50][50 ...
- 威佐夫博弈:百练OJ:1067:取石子游戏
威佐夫博弈(Wythoff's game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 百练OJ:1067:取石子游戏 ...
- 百练OJ:4003:十六进制转十进制(python三行代码实现)
题目链接:百练OJ:4003 描述 将十六进制数转换成十进制数 输入 第一行有一个整数T,表示共有T组数据 接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前 ...
- 百练OJ:2742:统计字符数
题目链接: 百练OJ:2742:统计字符数 描述:判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多 输入:第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的 ...
- java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)
java进制转换函数介绍:Java二进制.八进制.十进制.十六进制相互转换: 二进制转十进制 Integer.parseInt("0110", 2); 八进制转十进制 Intege ...
- 百练OJ:2973:Skew数
题目链接: 百练OJ:2973:Skew数 描述:在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1). 每个位上的可能数字是0 或 1,最后面一个非零位可以是2, 例如, ...
最新文章
- 【青少年编程】【四级】数字之和
- java 通用取得 系统硬件信息及 jvm 信息的 jar 包 oshi-core
- 常微分方程数值解:欧拉公式
- 【语法解释】init
- MindManager: Draw your own MindMap!
- 在.NET Core中用最原生的方式读取Nacos的配置
- Not so Mobile(二叉树递归输入同时建树){天平}
- 1859. 将句子排序
- pso算法c++语言代码,一C++PSO(PSO)算法
- 关于企业应用SAP成本管理模式与方法的一些思考
- matlab2c使用c++实现matlab函数系列教程-asin函数
- python适用于哪些芯片_这些鲜为人知的Python功能,你值得拥有!
- [笔记]3.软件代码中的BUG问题的一些记录
- 广州大学机器学习与数据挖掘实验一
- import cv2
- opencv2.4.10配置vs2010旗舰版过程与遇到问题的解决
- 调停者模式 java_《JAVA与模式》之调停者模式
- python视频教程大全集下载啦
- SPSS实现系统聚类
- SVN上文件出现左侧黄色箭头右侧绿色箭头的双向箭头
热门文章
- 请选择正确html,请选择可以使单元格中的内容进行左对齐的正确HTML标记( )。...
- 对于程序员而言,是否金三银四才是最佳跳槽季
- Netty之编解码器框架
- 求有10个整型元素的数组中最大元素及其下标。
- 第七章、Tiny4412 U-BOOT移植七 DDR内存配置
- Mac mini 2018 win10 外接显卡终极教程
- Mac操作指南:Mac显示器颜色不正如何调节?
- 发布项目,Upload AppStore解决ITMS-90096问题
- 克莱斯勒等公司宣布召回缺陷汽车
- kali linux安全牛教程,Kali Linux渗透测试(安全牛)最新完整版教程160G