查看: 1924| 回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 昨天Roblox OA 最后一题 求解

🔗
appleC | 只看该作者 |倒序浏览
全局:

2021(4-6月)-CS硕士+fresh grad 无实习或全职 | 网上海投| 码农类General全职@roblox

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
项目描述:
https://docs.google.com/document ... -A/edit?usp=sharing
麻烦各位大佬帮我看一下这题怎么破。我只能想出一个暴力解法(时间复杂度为 (w*h)**n, 肯定不太好  ), 昨天在学院discord群里问,一位老哥建议用genetic algorithm :). .и
如果有想法的话,可以回复你的解法,任何语言,不过最好要过题目中的4个 test case。
谢谢

评分

参与人数 2大米 +3 收起 理由
qingjiu + 1 给你点个赞!
老胡拉夫斯基 + 2 给你点个赞!

查看全部评分


上一篇:Google L5选组问题求教
下一篇:2021 还有什么值得加入Pre-IPO的Startup?
🔗
yiliaobailiao 2020-12-15 10:56:57 | 只看该作者
全局:
我觉得这个题,不需要BFS那么复杂?因为最后可行的office的位置,是近乎“均匀”分布在里面。所以,到office最远的停车场,一定是来自于四个角以及最中心的一个矩形(大小取决于w和h的奇偶)。之所以要考虑中心的矩形,是因为在遍历所有可能性的时候,如果office恰好落在四个角落,只算四个角的话,最远距离会是0。这样的话,复杂度就变成O(C(w *h, n) * n), where C() is combination. 示例代码如下,有问题欢迎继续讨论。
.--
  1. import itertools
  2. . From 1point 3acres bbs
  3. def build_offices(w, h, n):
  4.     points = [(0, 0), (0, w - 1), (h - 1, 0), (h - 1, w - 1)]
  5.     for row in range((h - 1) // 2, h // 2 + 1):
  6.         for col in range((w - 1) // 2, w // 2 + 1):. ----
  7.             points.append((row, col))

  8.     all_pos = []
  9.     for row in range(h):. check 1point3acres for more.
  10.         for col in range(w):
  11.             all_pos.append((row, col))

  12.     def get_farest(offices, points):. From 1point 3acres bbs
  13.         res = 0
  14.         for x, y in points:
  15.             cur_nearest = float('inf').
  16.             for row, col in offices:
  17.                 cur_nearest = min(cur_nearest, abs(row - x) + abs(col - y)). ----
  18.             res = max(res, cur_nearest). Waral dи,
  19.         return res. Waral dи,

  20.     res = float('inf')
  21.     for comb in itertools.combinations(all_pos, n): ..
  22.         cur = get_farest(comb, points)
  23.         res = min(cur, res). 1point3acres
  24. .--
  25.     return res
  26. .--
  27. print(build_offices(4, 4, 3))
  28. print(build_offices(2, 3, 4))
  29. print(build_offices(4, 5, 1))
  30. print(build_offices(3, 5, 2))
复制代码
回复

使用道具 举报

全局:
nice problem, thank you
回复

使用道具 举报

🔗
 楼主| appleC 2021-7-3 07:02:51 来自APP | 只看该作者
全局:
Thank you

评分

参与人数 2大米 +2 收起 理由
qingjiu + 1 给你点个赞!
老胡拉夫斯基 + 1 hvjh

查看全部评分

回复

使用道具 举报

🔗
 楼主| appleC 2021-7-3 07:04:56 来自APP | 只看该作者
全局:
You're welcome

评分

参与人数 1大米 +1 收起 理由
老胡拉夫斯基 + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
我感觉用BFS围绕着office的位置为中心展开,中间check下已有的step数是否比当前的step小,就不继续在当点pos展开了。 大概O(n*w*h)

补充内容 (2021-08-06 13:53 +08:00):
图片传不了,四个case都过了,不知道
time complexity 过的了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表