博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1533 && CF538F
阅读量:6153 次
发布时间:2019-06-21

本文共 360 字,大约阅读时间需要 1 分钟。

题目:难以简述,请

   

好劲啊跪在地上。。完全没接触过K叉树的性质。。

对于每个询问,我们并不关心叶节点,只关心其他的节点。而一个完整K叉树的内节点个数是O(n/k)的,所以总计下来就是调和级数,也就是O(nlogn)个点需要我们计算。

然后对于每个点我们要查询一个区间内有多少个点权值小于它,并累计入答案。我们可以用两种方式在O(logn)时间复杂度实现这个操作

1.树状数组。我们将每个询问区间拆成[1,l-1],[1,r],然后减掉就好了。具体来说,我们把区间排序,然后依次用树状数组处理,一边计算贡献一边更新树状数组(操作过程类似于求逆序对)。

2.主席树。这个不用多赘述。

总复杂度O(nlognlogn)。

转载于:https://www.cnblogs.com/enigma-aw/p/6354496.html

你可能感兴趣的文章
Intellij Idea 创建EJB项目入门(一)
查看>>
Spring的事务管理基础知识
查看>>
面向对象 继承
查看>>
【温故而知新】HTTP 概述
查看>>
JCM参数配置及查看deap
查看>>
mac的日常使用总结
查看>>
24点问题
查看>>
1.Linux电源管理-休眠与唤醒【转】
查看>>
linux实验二:SET-UID程序漏洞实验
查看>>
Storm通信机制(了解)
查看>>
阿里王坚:机器比人做得好的事,那这件事就不该由人来做
查看>>
Android与html5交互 -- WebView使用(一)
查看>>
体验VS2015 Update 2 的 Android 和 Python
查看>>
ubuntu16.04 Docker默认存储路径修改
查看>>
jQuery 复选框全选反选
查看>>
py5.21
查看>>
将数据导出Excel格式
查看>>
[css3]跑马灯
查看>>
shell面试题整理
查看>>
php函数总结
查看>>