2019阿里校招测评题(编程)
明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?
光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连。光明小学的每个班都有M个学生,所以你要为他们设计出一条恰好经过M条边的路径。
光明小学的小朋友们希望全盘考虑所有的因素,所以你需要把任意两点间经过M条边的最短路径的距离输出出来以供参考。
你需要设计这样一个函数:
res[][] Solve( N, M, map[][]);
注意:map必然是N * N的二维数组,且map[i][j] == map[j][i],map[i][i] == 0,-1e8 <= map[i][j] <= 1e8。(道路全部是无向边,无自环)2 <= N <= 100, 2 <= M <= 1e6。
map数组表示了一张稠密图,其中任意两个不同节点i,j间都有一条边,边的长度为map[i][j]。N表示其中的节点数。
你要返回的数组也必然是一个N * N的二维数组,表示从i出发走到j,经过M条边的最短路径
你的路径中应考虑包含重复边的情况。
样例:
N = 3
M = 2
map = {
{0, 2, 3},
{2, 0, 1},
{3, 1, 0}
}
输出结果result为:
result = {
{4, 4, 3},
{4, 2, 5},
{3, 5, 2}
}
输入样例:
3
2
3 3
0 2 3
2 0 1
3 1 0
输出样例:
[[4, 4, 3],
[4, 2, 5],
[3, 5, 2]]
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;vector<vector<int>> result;
vector<vector<int>> map;
int mindis = INT_MAX;void dfs(int start, int end, int N, int M, int distance, int steps)
{if (steps == M){if (start == end && distance < mindis)mindis = distance;return;}int rdis;for (int next = 0; next < N; next++){if (next == start)continue;rdis = distance + map[start][next];dfs(next, end, N, M, rdis, steps + 1);}
}
vector<vector<int>> solution(int N, int M)
{result = vector<vector<int>>(N, vector<int>(N, 0));int dis = 0;for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){dfs(i, j, N, M, 0, 0);result[i][j] = mindis;mindis = INT_MAX;}}return result;
}
int main()
{int N, M;cin >> N >> M;int temp;map = vector<vector<int>>(N, vector<int>(N, 0));result=vector<vector<int>>(N, vector<int>(N, 0));for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){cin >> temp;map[i][j] = temp;}}solution(N, M);for (int i = 0; i < result.size(); i++){for (int j = 0; j < result[i].size(); j++)cout << result[i][j] << " ";cout << endl;}return 0;
}
参考博客:https://blog.csdn.net/u012465304/article/details/81180707
2019阿里校招测评题(编程)相关推荐
- 2019阿里校招测评题,光明小学完全图最短路径问题
光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光明小 ...
- 2019阿里校招测评题 光明小学完全图最短路径问题
题目: 光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连 ...
- 2019阿里校招测评题 物流派送员最短路径问题
题目: 解题思路: 还是尝试用全排列先去求个解出来,把所有可能的路径都求出来,找出最短的那个. 但是感觉用启发式算法效果会更好,尝试使用两元素优化求解. 代码实现: 全排列版本: public cla ...
- 2019阿里校招测评——光明小学接力赛(Java)
合理宣泄下:太久没做题了,脑子锈了~然后拿到题,莫名大脑空白了10分钟,再接着看懂了题目,但就是不晓得怎么下手.所以就计划边写边想(至少把输入,主函数什么的敲进去),但是!!!不晓得是按错了Tab键还 ...
- python笔试题奥特曼打怪兽_2019阿里校招测评题,光明小学完全图最短路径问题(python实现)...
题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连. ...
- 2019阿里校招面试【前端】(一)
2019阿里校招面试一面(前端) 问题: 项目里面遇到的困难 promise请求失败如何返回原来页面 call/apply/bind 数组中找某个元素的方法和时间复杂度 前端工程化 继承的方式 跨域 ...
- 大疆校招测评题--循环赛问题
笔者在2022.7参加了大疆的测评题. 其中有道循环赛问题,记录下解题思路. 循环赛问题 六名选手A, B, C, D, E, F进行循环赛. 每两名选手间比赛一次,每名选手每天比赛一场. 五天内完成 ...
- 2019阿里应届内推编程题
先挂题目 -------------------------------------------------------- 光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题 ...
- 2019校招真题编程(十九)魔法深渊
魔法深渊 题目描述 我的思路 题目描述 前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧. 由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个 ...
最新文章
- 计算机二级vb知识点汇总,计算机二级vb基础知识考点整理(13页)-原创力文档...
- 2017202110104-高级软件工程2017第8次作业—个人总结
- 2019云栖大会精品资料免费下载
- ubuntu安装mysql_Ubuntu18.04下安装MySQL
- java dataset类的方法,C#中DataSet转化为实体集合类的方法
- 如何用方正飞腾做出“凹”形文本框
- 电脑写作与发布哪款软件好?
- 小猪短租陈驰:共享经济不是简单的资本游戏
- 红队笔记之痕迹清理技术要点与实战方法总结
- 【MQTT学习】lesson8. :Retained 消息和 LWT
- 使用Swift模拟Window-LFU
- Java调用有道翻译API包括APPID/密钥地址注册
- 从零开始Tableau | 12.表计算-特定维度
- C语言算法:冒泡法排序
- 微信小程序--操作微信自带的返回按钮使上个页面刷新列表或刷新数据
- Cox 比例风险模型中HR和置信区间
- 学习《新概念》的方法
- PDF能编辑吗,怎样去掉PDF上的水印
- 记一次小程序接口从云开发迁移至本地服务器的经验收获
- 树莓派远程4G遥控车教程(三)-摄像头安装及实现局域网实时监控
热门文章
- 网络钓鱼作为服务开始在黑市售卖
- 解密:互联网地下黑市都在卖什么?
- 腾讯通服务器文件数据源,腾讯通RTX管理器打开时提示找不到数据源,怎么办?...
- java oracle分页查询语句_Oracle分页查询语句的写法(转)
- 关于前端 js 点击事件重复执行
- javascript/js点击事件显示日期的效果
- 程序员诗词大赛开始了_你看过吗?
- android 高仿小米note4,只要1999! 小米Note4首次曝光:amoled全面屏+骁龙670!
- 案例管理:如何杜绝越级上司的命令?
- php 域名的正则验证