📣 独立日限时特惠: VIP通行证立减$68
12
返回列表 发新帖
楼主: ymmmmm
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 不限时OA求助

🔗
listerily 2022-2-12 12:04:04 | 只看该作者
全局:
ymmmmm 发表于 2022-2-12 08:20
谢谢你的回答!我按照你的方法写了一遍 把2个TLE中的一个过了。还有一个TLE是有很多个点,但是只有一个sp ...

对于最后一个tle,尝试把所有点按照x坐标排序,在枚举j点找与i点毗邻的点时,用二分查找找出哪些点j满足x[i]-r<=x[j]<=x[i]+r。仅在这些点中搜索,若数据非带状密集分布,平均时间复杂度大概为O(nlogn)而非O(n^2)。
BFS剪枝:在BFS过程中,AI每跳转到一个新点就把这个点标记为可跳转,并在新点上继续跳转。如若AI要跳转的下一个点已经被标记了,这说明自己或者其他的AI已经跳转过这个点了,因此可以把这个点及其后续的路径在搜索树上删除。这就是剪枝。剪枝后可以保证每个可跳转点有且只有一次被跳转,复杂度O(n)
回复

使用道具 举报

🔗
 楼主| ymmmmm 2022-2-12 12:53:40 | 只看该作者
全局:
本帖最后由 ymmmmm 于 2022-2-11 20:56 编辑
listerily 发表于 2022-2-11 20:04
对于最后一个tle,尝试把所有点按照x坐标排序,在枚举j点找与i点毗邻的点时,用二分查找找出哪些点j满足x ...

我已经进行了二分查找区间优化了 还是TLE。真不懂了 方便私信你code帮我看看吗。关于剪枝,你的意思是DFS然后维护一个visited set。如果visited过就pass掉吗?
回复

使用道具 举报

🔗
listerily 2022-2-12 13:11:30 | 只看该作者
全局:
ymmmmm 发表于 2022-2-12 12:53
我已经进行了二分查找区间优化了 还是TLE。真不懂了 方便私信你code帮我看看吗。关于剪枝,你的意思是DFS ...

可以(但这也tle我可能也没啥办法了)。是。
回复

使用道具 举报

🔗
bydstand 2022-2-12 13:50:45 | 只看该作者
全局:
不需要bfs,只要并查集就可以了。找一个带路径压缩的并查集代码。

1.把距离小于r的两个点union。
大致思路是x轴方向分组,y方向排序,应该可以做到NlogN。
例如把点按照横坐标丢到桶里[0, r)[r, 2r)。 对每个点只需要检查当前组,左边的组,右边的组里y值绝对值差不大于r的点。

2.把spawner跟虚点0 union(O N)
3.检查每一个点是否与虚点0联通。(O N)

如果还是TLE就是第一步写的不够好。

评分

参与人数 1大米 +1 收起 理由
ymmmmm + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
listerily 2022-2-12 18:08:59 | 只看该作者
全局:
ymmmmm 发表于 2022-2-12 12:53
我已经进行了二分查找区间优化了 还是TLE。真不懂了 方便私信你code帮我看看吗。关于剪枝,你的意思是DFS ...

看了您的代码,感觉没大问题。还可以进行一个小优化就是令leftBound=max(leftBound, i + 1)。因为可跳转关系满足对称性,我们对于点i只需要知道j>i的可跳转点就行,这样能减去一半的搜索。
还可以采用zjudky的“x分组y排序”的方法,应该会比我的方法要好一些。
另外,二分查找可以使用lower_bound和upper_bound。
回复

使用道具 举报

🔗
 楼主| ymmmmm 2022-2-13 08:43:05 | 只看该作者
全局:
listerily 发表于 2022-2-12 02:08
看了您的代码,感觉没大问题。还可以进行一个小优化就是令leftBound=max(leftBound, i + 1)。因为可跳转 ...

用x分组y排序的方法做出来了。 谢谢大佬的引导!
回复

使用道具 举报

🔗
 楼主| ymmmmm 2022-2-13 08:43:22 | 只看该作者
全局:
bydstand 发表于 2022-2-11 21:50
不需要bfs,只要并查集就可以了。找一个带路径压缩的并查集代码。

1.把距离小于r的两个点union。

用您的方法做出来了! 谢谢!
回复

使用道具 举报

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

本版积分规则

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