明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么?
光明小学可以抽象成一张有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阿里校招测评题(编程)相关推荐

  1. 2019阿里校招测评题,光明小学完全图最短路径问题

    光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连.光明小 ...

  2. 2019阿里校招测评题 光明小学完全图最短路径问题

    题目: 光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连 ...

  3. 2019阿里校招测评题 物流派送员最短路径问题

    题目: 解题思路: 还是尝试用全排列先去求个解出来,把所有可能的路径都求出来,找出最短的那个. 但是感觉用启发式算法效果会更好,尝试使用两元素优化求解. 代码实现: 全排列版本: public cla ...

  4. 2019阿里校招测评——光明小学接力赛(Java)

    合理宣泄下:太久没做题了,脑子锈了~然后拿到题,莫名大脑空白了10分钟,再接着看懂了题目,但就是不晓得怎么下手.所以就计划边写边想(至少把输入,主函数什么的敲进去),但是!!!不晓得是按错了Tab键还 ...

  5. python笔试题奥特曼打怪兽_2019阿里校招测评题,光明小学完全图最短路径问题(python实现)...

    题目:光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题:设计接力跑大赛的线路,你能帮助他们完成这项工作么? 光明小学可以抽象成一张有N个节点的图,每两点间都有一条道路相连. ...

  6. 2019阿里校招面试【前端】(一)

    2019阿里校招面试一面(前端) 问题: 项目里面遇到的困难 promise请求失败如何返回原来页面 call/apply/bind 数组中找某个元素的方法和时间复杂度 前端工程化 继承的方式 跨域 ...

  7. 大疆校招测评题--循环赛问题

    笔者在2022.7参加了大疆的测评题. 其中有道循环赛问题,记录下解题思路. 循环赛问题 六名选手A, B, C, D, E, F进行循环赛. 每两名选手间比赛一次,每名选手每天比赛一场. 五天内完成 ...

  8. 2019阿里应届内推编程题

    先挂题目 -------------------------------------------------------- 光明小学的小朋友们要举行一年一度的接力跑大赛了,但是小朋友们却遇到了一个难题 ...

  9. 2019校招真题编程(十九)魔法深渊

    魔法深渊 题目描述 我的思路 题目描述 前几个月放映的头号玩家简直火得不能再火了,作为一个探索终极AI的研究人员,月神自然去看了此神剧. 由于太过兴奋,晚上月神做了一个奇怪的梦,月神梦见自己掉入了一个 ...

最新文章

  1. 计算机二级vb知识点汇总,计算机二级vb基础知识考点整理(13页)-原创力文档...
  2. 2017202110104-高级软件工程2017第8次作业—个人总结
  3. 2019云栖大会精品资料免费下载
  4. ubuntu安装mysql_Ubuntu18.04下安装MySQL
  5. java dataset类的方法,C#中DataSet转化为实体集合类的方法
  6. 如何用方正飞腾做出“凹”形文本框
  7. 电脑写作与发布哪款软件好?
  8. 小猪短租陈驰:共享经济不是简单的资本游戏
  9. 红队笔记之痕迹清理技术要点与实战方法总结
  10. 【MQTT学习】lesson8. :Retained 消息和 LWT
  11. 使用Swift模拟Window-LFU
  12. Java调用有道翻译API包括APPID/密钥地址注册
  13. 从零开始Tableau | 12.表计算-特定维度
  14. C语言算法:冒泡法排序
  15. 微信小程序--操作微信自带的返回按钮使上个页面刷新列表或刷新数据
  16. Cox 比例风险模型中HR和置信区间
  17. 学习《新概念》的方法
  18. PDF能编辑吗,怎样去掉PDF上的水印
  19. 记一次小程序接口从云开发迁移至本地服务器的经验收获
  20. 树莓派远程4G遥控车教程(三)-摄像头安装及实现局域网实时监控

热门文章

  1. 网络钓鱼作为服务开始在黑市售卖
  2. 解密:互联网地下黑市都在卖什么?
  3. 腾讯通服务器文件数据源,腾讯通RTX管理器打开时提示找不到数据源,怎么办?...
  4. java oracle分页查询语句_Oracle分页查询语句的写法(转)
  5. 关于前端 js 点击事件重复执行
  6. javascript/js点击事件显示日期的效果
  7. 程序员诗词大赛开始了_你看过吗?
  8. android 高仿小米note4,只要1999! 小米Note4首次曝光:amoled全面屏+骁龙670!
  9. 案例管理:如何杜绝越级上司的命令?
  10. php 域名的正则验证