浅谈二维数点

浅谈二维数点#

1. 序列上的二维数点

这个问题显然是简单的,离线后按照 x 排序后第一维扫描,第二位 BIT 的二维偏序

时间复杂度 O(nlogn),空间复杂度 O(n)

那么如果在线呢?😕

经典的主席树问题,以下标为版本,建可持久化线段树

时间复杂度 O(nlogn),空间复杂度 O(nlogn)

2.树上二维数点(子树的交)

对于两棵树,若我们想求出其上两个子树的节点交,其实将树拍扁成 dfs 序后,是和序列上的二维数点等价的

但对于某些题目,有些更为巧妙的做法

P9196 [JOI Open 2016] 销售基因链

给定 n 个字符串,m 次询问,每次求同时以 S 为前缀,T 为后缀的字符串有多少

n,m,|si|,|S|,|T|2×106

做法:建出正反两个 Trie,求其询问串对应的两个子树的交

离线。将 si 升序排序,把每个询问的 S ,用正 Trie 映射到 [1,n] 上的一个区间,再按降序排序,做扫描线即可。这种做法无需 BIT

3.带修二维数点

首先在线可以树套树(带修主席树)时间 O(nlog2n)

离线可以 CDQ 分治,增加时间维度,变成三维偏序 O(nlog2n)

posted @   慕斯ひいきする  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示