阿里的30分钟编程测评,截图献上

今天听几个同学说阿里的测评是TSP,想来不能一样吧,还真是TSP.很遗憾,得了零分,但是很乐意把题共享给大家
#阿里巴巴##笔试题目#
全部评论
Map = [[0,2,3],[2,0,1],[3,1,0]] ans = [([float('inf')]*3)for p in range(3)] start = 0 def findfunc(Node,N,distance):         if N == 0:             if ans[start][Node] > distance:                 ans[start][Node] = distance                 return             return         info = Map[Node]         for ind,each in enumerate(info):             if each != 0:                 findfunc(ind,N-1,distance + each)         return for i in range(3):     start = i     M = findfunc(i,2,0) 深度优先搜索
点赞 回复 分享
发布于 2018-07-18 17:20
之前图相关的都用的领接数组,这换成了领接矩阵,半天没反应过来,我去。。。。。 #include<iostream> #include<algorithm> #include<fstream> #include<map> #include<vector> #include<string> #include<iostream> using namespace std; void dfs(vector<vector<int>> &path, int s, int e, int v,int &res,int L,int M) {     if (L > M)         return;     if(L==M&&s==e){         res = min(res, v);         return;     }     for (int i = 0; i < path[0].size(); ++i) {         if (path[s][i] != 0)             dfs(path, i, e, v + path[s][i], res, L + 1, M);     } } vector<vector<int>> solve(vector<vector<int>> &path,int M) {     vector<vector<int>> res(path.size(), vector<int>(path[0].size(), -1));     for(int i=0;i<path.size();++i)         for (int j = 0; j < path[0].size(); ++j) {             int r=INT32_MAX;             dfs(path,i,j,0,r,0,M);             res[i][j] = r;         }     return res; } int main(void){     int N, M;     while (cin >> N >> M) {         int N1, N2;         cin >> N1 >> N2;         vector<vector<int>> path;         for (int i = 0; i < N1; ++i) {             vector<int> temp;             int data;             for (int j = 0; j < N2; ++j) {                 cin >> data;                 temp.push_back(data);             }             path.push_back(temp);         }         vector<vector<int>> res = solve(path, M);         for (auto v : res) {             for (auto i : v)                 cout << i << " ";             cout << endl;         }     }     getchar();     return 0; }
点赞 回复 分享
发布于 2018-07-24 15:16
用动态规划做的,dp[i][j][m]=min{dp[i][s][m-1] + map[s][j]}s为j的所有邻居。当然用二维滚那个动数组可以节约一点空间。但是时间复杂度为O(n^3*m),不合要求。。。
点赞 回复 分享
发布于 2018-07-23 23:47
我只做出来一个时间复杂度为n3*m的
点赞 回复 分享
发布于 2018-07-18 10:50
唉,我是时间过了才写出来的,也没用
点赞 回复 分享
发布于 2018-07-18 05:37
TSP是什么意思?
点赞 回复 分享
发布于 2018-07-18 01:53

相关推荐

浅白lw:其实是牛马自己换马了
点赞 评论 收藏
分享
当年还在美团那个倒霉的&nbsp;Peppr&nbsp;团队工作时,我一直有个疑问:这群人每天到底在自嗨什么。每次开会一堆人围着一堆“看起来很高级”的文档转,模板统一、名词复杂、页数感人,每一页都在暗示一件事:“你不懂,是因为你不专业。”但现实是——代码照样写在&nbsp;💩&nbsp;山上,该出问题还是会出问题,这真的很逗,系统一出问题,文档的唯一作用就是证明:“我们当初确实认真写过文档。”所以本质区别到底是什么?是代码质量提升了,还是大家在精神层面完成了一次“工程师&nbsp;cosplay”?有句话说得好潮水退去才知道谁在裸泳。还记得当时的马哥、明哥(图&nbsp;1&nbsp;左)最爱反复强调一句话:“所有场景一定要想到。”、“这个场景为什么没考虑到?”不过他们这些话我是真的听进去了。不然我也不会在一年多前就说:这个项目活不过两年。顺带一提,那段时间还有个固定节目。每次下楼,总能听见我明哥在吐槽不同的人。我从他身后绕过去,经常能听到他一边抽烟一边说:“xx&nbsp;这小子太坑了,回头我一定要跟马哥说说。”于是深谙人情世故但真不会抽烟的我也会从口袋掏出一支低尼古丁含量的烟给自己点上,假意自己什么都没听到什么都不知道,只是来抽烟的。后来我才明白,这可能也是团队文化的一部分:问题永远在别人身上,而我们,永远在复盘里😂。
秋招白月光
点赞 评论 收藏
分享
评论
点赞
96
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务