美团 后端 笔试 3.28
出题人真疯了?????笔试题又出数据结构,上次默写HLD这次默写主席树是吧????
t1贪心,t2dp,都算简单题吧,写的很顺。
t3 求一个数组有多少子区间,使得区间端点和大于区间最大值,n1e5,值域1e6,262mb!!!!!!!
考虑在笛卡尔树上做,那么就是在每个节点上求有多少跨越最大值的区间且区间端点的和大于最大值
一个做法是考虑这个最大值把区间分成两部分,枚举小的那部分,设枚举到的为x,查询大的那部分有多少满足值大于max-x,这个显然可以直接上主席树做,枚举的复杂度于在笛卡尔树上枚举小的子树(其实不太等价,但是差不多就是这个意思),复杂度等于树上启发式合并,总体时间O(nlog^2),空间O(nlogn)
然后坑点来了,首先上面那个枚举其实有一点conner case,不太好写,其次这个空间其实是开不下1e6的主席树的,你需要完全动态开点,初始树都不建来卡一下常,或者写离散化
赛时被卡mle了,没调完。
贵司是真的只招火箭毛毛虫高手吗????
upd:和队友聊了下,队友说可以先递归大子树,在再这个节点上做操作,这样就不需要做主席树的复杂操作了,可以直接上普通线段树/树状数组或者pbds::tree,不会mle
#美团##笔试##美团笔试#
t1贪心,t2dp,都算简单题吧,写的很顺。
t3 求一个数组有多少子区间,使得区间端点和大于区间最大值,n1e5,值域1e6,262mb!!!!!!!
考虑在笛卡尔树上做,那么就是在每个节点上求有多少跨越最大值的区间且区间端点的和大于最大值
一个做法是考虑这个最大值把区间分成两部分,枚举小的那部分,设枚举到的为x,查询大的那部分有多少满足值大于max-x,这个显然可以直接上主席树做,枚举的复杂度于在笛卡尔树上枚举小的子树(其实不太等价,但是差不多就是这个意思),复杂度等于树上启发式合并,总体时间O(nlog^2),空间O(nlogn)
然后坑点来了,首先上面那个枚举其实有一点conner case,不太好写,其次这个空间其实是开不下1e6的主席树的,你需要完全动态开点,初始树都不建来卡一下常,或者写离散化
赛时被卡mle了,没调完。
贵司是真的只招火箭毛毛虫高手吗????
upd:和队友聊了下,队友说可以先递归大子树,在再这个节点上做操作,这样就不需要做主席树的复杂操作了,可以直接上普通线段树/树状数组或者pbds::tree,不会mle
#美团##笔试##美团笔试#
全部评论
t1排序加贪心不行嘛,只能通过15
打acm的大佬吧,我看都看不懂你的贴子,第三题我只能暴力骗分
哥们为啥我 3.15 投了美团,一点反应都没有
,你投的是什么岗位啊?
想到主席树了,没板子建不出来,,,赛后才发现多叉的情况只用每次枚举最左或者最右端点
相关推荐
昨天 16:49
门头沟学院 Java 点赞 评论 收藏
分享
昨天 09:31
西北工业大学 Java 点赞 评论 收藏
分享
