(python 3) 1 import numpy 2 from scipy import sparse as S 3 from matplotlib import pyplot as plt 4 from scipy.sparse.csr import csr_matrix 5 i...
分类:
编程语言 时间:
2015-03-07 06:12:08
阅读次数:
497
今天看到一个SparseArray的类,查下相关资料进行总结。
SparseArray指的是稀疏数组(Sparse array),所谓稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀疏数组的内容。
从构造方法我们可以看出,它和一般的List...
分类:
其他好文 时间:
2015-03-02 11:17:19
阅读次数:
105
RMQ问题就是区间最小值问题,这是一个非常经典的题,
由他引申出来的也是不计其数最多的是给出一个区间,然后输入多组区间端点,求输入区间的最小值。
每次用循环来计算一个最小值显然不够快,怎么办呢?
实践中最常用的是Tarjan的 Sparse-Table算法,它的预处理时间是O(nlogn),但是查询只需要O(1),而且常数很小。
它的思想很简单,就是递推+二分的思想。我们先定义一个二维数组...
分类:
其他好文 时间:
2015-03-01 18:35:50
阅读次数:
139
范围最小值问题(Range Minimum Query)
给出一个n个元素的数组,设计数据结构使得支持查询操作Query(L,R) 计算[L,R]中最小值
Tarjan的Sparse-Table算法预处理时间为O(nlogn) 查询只需要O(1)而且常数很小。假设dp[i][j]表示从第i个数开始的2^j个数的最小值。
有下列公式:dp[i][j] = min(dp[i,j-1],dp[i+2...
分类:
编程语言 时间:
2015-02-22 21:57:56
阅读次数:
200
http://acm.split.hdu.edu.cn/showproblem.php?pid=5172官方题解
一个区间是排列只需要区间和为len(len+1)2(len为区间长度),且互不相同,对于第一个问题我们用前缀和解决,对于第二个问题,预处理每个数的上次出现位置,记它为pre,互不相同即区间中pre的最大值小于左端点,使用线段树或Sparse Table即可在O(n)/O(nlogn)的...
分类:
其他好文 时间:
2015-02-15 18:12:15
阅读次数:
161
一、稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,而且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都仅仅是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,而且非零元素没有分布规律。 二、稀疏矩阵的压缩存...
分类:
其他好文 时间:
2015-02-11 23:09:43
阅读次数:
244
一、稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,而且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都仅仅是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,而且非零元素没有分布规律。 二、稀疏矩阵的压缩存...
分类:
其他好文 时间:
2015-02-05 21:39:34
阅读次数:
279
Sparse Tabel名为稀疏表,又称为ST表,可以在O(1)的时间复杂度下完成查询区间最值,相比线段树和树状数
组,效率提升了不少.ST表本质上是一个很经典的dp,通过预处理完成O(1)的查询.既然是个dp,那我们来看下dp的
定义吧(下面以查询区间最大值为例).
dp[i][j]:表示以i为起点,长度为2^j的区间最值
那么我们很容易得出状态转移方程:...
分类:
其他好文 时间:
2015-02-03 13:25:50
阅读次数:
188
搞Android的同学经常会接触到system.img。但是该文件经常以两种格式出现:raw和sparse。这里详细介绍两者的区别。另外android本身提供了源代码工具在两者之间转换,这里提供工具进行转化。...
分类:
移动开发 时间:
2015-01-27 09:28:25
阅读次数:
179
数据结构---如何节省空间1,稀疏矩阵稀疏矩阵定义:对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。如果矩阵中每一个点都用数组方式表示,那么会浪费很大的空间,因为大部分矩阵中的点的值都为0,因此可以采用一个一维数组表示n列,然后每一列采用一个链表...
分类:
其他好文 时间:
2015-01-20 21:47:33
阅读次数:
141