8.16美团笔试

有没有大佬讲讲第三题三元组的思路,一种又朴素又很难的感觉太菜了#美团秋招笔试# #美团笔试#
全部评论
就做出来这一个,直接三个for循环
1 回复 分享
发布于 08-16 21:11 山东
是双机位吗
点赞 回复 分享
发布于 昨天 14:49 北京
py平方复杂度过42%,听说C++立方复杂度加剪枝就能过50%果然C++都是人上人
点赞 回复 分享
发布于 08-16 22:32 北京
会线段树就是送分题,不会的话不可能 AC 的,数据量那么大
点赞 回复 分享
发布于 08-16 22:05 北京
离散化后维护正序对数组,本质上题目要求的就是对于每个 i,i 右侧的正序对数量,但正序对需要满足一个前提是不能超过 a[i]。 所以逆序遍历,维护一个 f[x] 表示截至目前为止,正序对最大值为 x 的正序对数量,那么遍历到 i 的时候,此时的贡献就是 f 数组的 1 ~ a[i] - 1 这一段的区间求和,因为这一段的正序对就没超过 a[i]。 接着就是要更新 f 数组,也就是说要把 a[i] 也给***去,插的时候比较直观的就是 a[i] 会对 a[i] + 1 ~ n 这一段产生贡献,也就是对这一段区间 +1,但问题是这一段有的点还不存在,那么是没有贡献的,所以我们在线段树上维护一个“节点打开数量”,初始所有节点都是“关闭”的,每次打开一个新的点,然后因为维护了这个数量,所以区间 +1 对区间 sum 只会生效这个数量那么多,然后就做完了。
点赞 回复 分享
发布于 08-16 21:30 北京
三维偏序https://www.cnblogs.com/smartljy/p/18157936
点赞 回复 分享
发布于 08-16 21:14 北京
回溯加去重
点赞 回复 分享
发布于 08-16 21:03 天津

相关推荐

sunyuheng3...:第三题如果做过三维偏序就很简单,用cdq+树状数组就行,考虑对[l,r]时贡献,i位于[l,mid],k位于[mid+1,r],然后分类讨论下j位于左右的求值方法即可。
投递美团等公司10个岗位
点赞 评论 收藏
分享
08-16 21:00
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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