阿里技术笔试-染色问题讨论

第二题染色问题,有人做出来了吗?有思路,但是太难写了吧#阿里实习##阿里巴巴#
全部评论
好奇第一题怎么做。。第一次做国内公司的面试,感觉是简单的数学但就是没想出来。
点赞 回复 分享
发布于 2020-04-10 10:03
感觉是回溯,没写完
点赞 回复 分享
发布于 2020-04-10 10:05
两题都是没做出来 好难
点赞 回复 分享
发布于 2020-04-10 10:08
我第一题也是用的中位数,但是只对了80%的测试😂
点赞 回复 分享
发布于 2020-04-10 10:13
第二题回溯只有给的用例能通过,,应该是超时了,忘了剪枝。
点赞 回复 分享
发布于 2020-04-10 10:25
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> using namespace std; typedef long long LL; const int maxn = 5010; int t, n, m, c, flag = 0; int l[maxn], cnt[maxn], mp[8][8]; void dfs(int x, int y) {   //printf("%d %d\n", x, y);   if (x == n && y == m + 1) {     flag = 1;     return;   }   for (int i = 0; i < c; i++) {     if (flag == 1) break;     if (i != mp[x - 1][y] && i != mp[x][y - 1] && cnt[i] < l[i]) {       mp[x][y] = i;       cnt[i]++;       if (x != n && y == m) dfs(x + 1, 1);       else dfs(x, y + 1);       cnt[i]--;       mp[x][y] = -1;     }   } } int main() {   scanf("%d", &t);   while (t--) {     memset(mp, -1, sizeof mp);     flag = 0;     scanf("%d %d %d", &n, &m, &c);     for (int i = 0; i < c; i++) {       scanf("%d", &l[i]);     }     dfs(1, 1);     printf("%s\n", flag == 1?"YES":"NO");   }   return 0; }
点赞 回复 分享
发布于 2020-04-10 10:27

相关推荐

醒工硬件:1学校那里把xxxxx学院去了,加了学院看着就不像本校 2简历实习和项目稍微精简一下。字太多,面试官看着累 3第一个实习格式和第二个实习不一样。建议换行 4项目描述太详细了,你快把原理图贴上来了。比如可以这样描述:使用yyyy芯片,使用xx拓扑,使用pwm控制频率与占空比,进行了了mos/电感/变压器选型,实现了xx功能 建议把技术栈和你做的较为有亮点的工作归纳出来 5熟悉正反激这个是真的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务