矩阵压缩

下三角矩阵

A[10,5]在一维数组中的下标(下标从0开始,行优先)

  • A[10,5]前面的元素个数:第1行——1个,第2行——2个,···,第9行——9个,第10行——4个(横着看,A[10,,5]-A[10,1]=4)。共49个。
  • A[10,5]的下标:0+49=49

A[10,5]在一维数组中的下标(下标从0开始,列优先)

  • A[10,5]前面的元素个数:第1列——n个,第2列——n-1个,···,第4列——n-3个;第5列——5个(竖着看,A[10,5]-A[5,5]=5)。
  • A[10,5]前面的元素个数:[n+(n-3)]×4/2+5=4n-1。
  • A[10,5]的下标:4n-1

上三角矩阵

A[5,10]在一维数组中的下标(下标从0开始,行优先)

  • 第1行——n个,第2行——n-1个,···,第4行——n-3个,第5行——5个(横着看,A[5,10]-A[5,5]=5)。
  • A[5,10]前面的元素个数:[n+(n-3)]×4/2+5=4n-1。
  • A[5,10]的下标:4n-1。

A[5,10]在一维数组中的下标(下标从0开始,列优先)

  • 第1列——1个,第2列——2个,···,第9列——9个,第10列——4个(竖着看,A[5,10]-A[1,10]=4)
  • A[5,10]前面的元素个数:(1+9)×9/2+4=49
  • A[5,10]的下标:0+49=49。

三对角矩阵

特点:?第一行、最后一行有两个元素。?其它各行有三个元素——第一个元素(i=j+1),第二个元素(i=j),第三个元素(i=j-1)。

A[30,30]在一维数组中的下标(下标从0开始,行优先):

  • 前29行有多少个元素:2+3×28=86;
  • A[30,30]是第30行的第几个元素:第2个(因为i=j)
  • A[30,30]前面有多少个元素:86+1=87
  • A[30,30]的下标:0+87=87

原文地址:https://www.cnblogs.com/Ymengchun/p/11223782.html

时间: 2024-11-14 18:14:59

矩阵压缩的相关文章

hdu1081 To the max(dp 矩阵压缩)

To The Max Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8947    Accepted Submission(s): 4323 Problem Description Given a two-dimensional array of positive and negative integers, a sub-rectang

C++实现矩阵压缩

C++实现矩阵压缩 转置运算时一种最简单的矩阵运算.对于一个m*n的矩阵M,他的转置矩阵T是一个n*m的矩阵,且T(i,j) = M(j,i). 一个稀疏矩阵的转置矩阵仍然是稀疏矩阵. 矩阵转置 方案一: 1将矩阵的行列值相互交换 2将每个原则中的i j 相互交换 3重新排列三元组之间的次序 这种方法实现比较简单,一次迭代交换i j 值. 然后就是两层循环进行排序操作了. 方案二 具体实心步骤: 1 迭代遍历,统计列中元素个数 2 由1的结果迭代计算每一列中元素起始位置 3 依据2中得到数据进行

矩阵压缩存储之三元组顺序表

形态: 实现: /***************************************** 稀疏矩阵的三元组顺序表存储表示 by Rowandjj 2014/5/3 ******************************************/ #include<IOSTREAM> using namespace std; #define MAXSIZE 12500//非零元个数的最大值 typedef int ElemType; typedef struct _DATA_

[Swust OJ 589]--吃西瓜(三维矩阵压缩)

题目链接:http://acm.swust.edu.cn/problem/589/ Time limit(ms): 2000 Memory limit(kb): 65535 Description 告诉你们一个好消息,Wraith前几天天得到一块西瓜,但是是长方体形的.... Wraith发现这块西瓜长m厘米,宽n厘米,高h厘米.他发现如果把这块西瓜平均地分成m*n*h块1立方厘米的小正方体,那么每一小块都会有一个营养值(可能为负,因为西瓜是有可能坏掉的,但是绝对值不超过200). 现在Wrai

学习日志---矩阵表示及特殊矩阵压缩

矩阵类:二维数组实现!! 每一行看成一个一维数组,在放入几个集合里面即可: 用到random类,可以生产随机数,括号里是最大值: 矩阵类: public class MyMatrix {     int[][] matrix ;//矩阵数组 Random random =new Random() ;//随机数对象 //默认的构造方法,生成3*3的矩阵 public MyMatrix() {         //默认是3*3矩阵 matrix = new int[3][3]; //初始矩阵 for

【矩阵压缩】 poj 1050

题意:给一个矩阵,里面有正负数,求子矩阵和的最大值 #include <iostream> #include <cstdio> #include <stdlib.h> #include <memory.h> using namespace std; int s[105][105],dp[105],n,temp[105]; int main() { // freopen("in.txt","r",stdin); cin&

HDU1081_To The Max【矩阵压缩】

To The Max Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8528    Accepted Submission(s): 4142 Problem Description Given a two-dimensional array of positive and negative integers, a sub-rectan

To the Max(矩阵压缩)

To the Max Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) Total Submission(s) : 2   Accepted Submission(s) : 2 Problem Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is a

快速压缩跟踪(CT)算法剖析

Fast Compressive Tracking (快速压缩跟踪) 虽然目前有很多种的跟踪算法,但是由于姿态的变化.光照的变化.障碍物等原因的存在,导致很多算法的鲁棒性不好. 目前比较主流的跟踪算法有两种,generative  tracking algorithms(生成跟踪算法)和discriminative algorithms(判别跟踪算法). 生成跟踪算法,顾名思义边生成边跟踪.即对这一帧的样本进行学习,将学习的结果作为下一帧的分类器,达到边学习跟踪,边跟踪边学习的效果.这种跟踪算法