博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逆序数和线段树的关系
阅读量:5738 次
发布时间:2019-06-18

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

考虑一下逆序数的定义:

{ 2, 4, 3, 1 } 

分别是(2,1), (4,3), (4,1), (3,1)

也就是说针对一个数。判断在这个序列中这个数位置后面的数有多少个比它小。

也就是说针对一个数。判断在这个序列中这个数位置之前有多少个数比它大。

 

那就是询问当前数~n 区间上的出现了多少个数。 (由于我们询问顺序是从前到后(左到右)。所以在当前数前面且比它大的都更新过了。)

注意这里把极端列为n。 如果不是n就要离散化。

 

知道逆序数。求原排列。

 

从小到大开始确定。

比如说。 4的逆序为3。

按照逆序数的等价说法。

在序列中 4 这个数字位置之前有3个数比4大。

那我们初始化线段树。叶子节点为1。其余节点为区间和。

从左到右 查到 当前空位( 1为空位。 0为非空。)

其中更新时候 把第当前数的空位置清为0。非空即可。

 

转载于:https://www.cnblogs.com/Milkor/p/4522590.html

你可能感兴趣的文章
jquery text()
查看>>
11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch
查看>>
空白字符 isspace 与空字符'\0'
查看>>
Nginx集群的故障迁移
查看>>
springboot源码解析autoconfigure之DispatcherServletAutoConfiguration
查看>>
Java面试前需要了解的东西
查看>>
java.lang.UnsupportedOperationException
查看>>
JVM——垃圾收集器(二)——垃圾收集算法
查看>>
Java中各个包的主要作用
查看>>
微服务ServiceComb-大咖来袭(上海)
查看>>
Spring Cloud Spring Boot mybatis分布式微服务云架构属性配置文件详解
查看>>
使用plsql developer创建存储过程以及调试
查看>>
教你在Python中用Scikit生成测试数据集(附代码、学习资料)
查看>>
etcd 在超大规模数据场景下的性能优化
查看>>
Hibernate JPA
查看>>
【Stimulsoft Reports Silverlight教程】在报表中使用Business Objects
查看>>
恕我直言,在座的各位根本写不好Java!
查看>>
Unicode下CString(wchar_t)转换为 char*
查看>>
Redis 内存淘汰机制
查看>>
0039-如何使用Python Impyla客户端连接Hive和Impala
查看>>