在公茂果老师的课件中,给出了三种矩阵相乘的方法: 1. 利用矩阵定义,对矩阵进行运算。即C(i,j)=A(i,k)*B(k,j),时间复杂度为: 每一个元素需时间n C矩阵共有n2个元素 因此,总的时间复杂度为n3 其实现代码为: 2.利用分治法进行计算。分治法的核心,在于将原问题切割,这里将原矩阵 ...
分类:
其他好文 时间:
2017-11-04 14:51:59
阅读次数:
153
传送门:题目点这里; 首先理解题目,就是要求给定矩阵中权值和不小于零的最大子矩阵,数据范围200也还不算棘手,暴力n^4的算法也可以水到50分。正解要用到单调栈配合二分和前缀和,复杂度n^3logn,跑得也还算快。 分析一下,首先用一个数组a[ i ][ j ]记录下第 i 行前 j 个元素之和,然 ...
分类:
其他好文 时间:
2017-10-31 20:16:55
阅读次数:
134
Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 Input 第一行为n,m,k(1≤n≤ ...
分类:
其他好文 时间:
2017-10-25 00:45:55
阅读次数:
97
P2258 子矩阵 P2258 子矩阵 P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。 例如,下面左图中选取第2、4行和第2、4、5列交叉位置的元素得到一个2*3的子矩阵如右图所示。 9 ...
分类:
其他好文 时间:
2017-10-23 20:46:28
阅读次数:
113
题解: 分类讨论 当m=1的时候,很简单的dp,这里就不再复述了 当m=2的时候,设dp[i][j][k]表示有k个子矩阵,第一列有i个,第二列有j个 然后枚举一下当前子矩阵,状态转移 代码: ...
分类:
其他好文 时间:
2017-10-14 20:03:13
阅读次数:
124
P2258 子矩阵 P2258 子矩阵 P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。 例如,下面左图中选取第2、4行和第2、4、5列交叉位置的元素得到一个2*3的子矩阵如右图所示。 9 ...
分类:
其他好文 时间:
2017-10-14 18:38:11
阅读次数:
189
[java]/** * 递归分治算法学习之二维二分查找 * @author Sking 问题描述:存在一个二维数组T[m][n],每一行元素从左到右递增,每一列元素从上到下递增,现在需要查找元素X(必在二维数组中)在数组中的位置,要求时间复杂度不超过m+n. */ package 递归分治; pub ...
分类:
编程语言 时间:
2017-10-13 16:18:10
阅读次数:
135
题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767) ...
分类:
其他好文 时间:
2017-10-12 22:55:20
阅读次数:
150
P3397 地毯 前缀和最开始接触是在日照夏令营,lca的一段子树中加或减一个数然后打标记,求前缀和000+10000-100000000111110000二维也一样,比如对子矩阵都加10+100000-100+100000-100+100000-100+100000-100+100000-10然后 ...
分类:
其他好文 时间:
2017-10-12 20:33:15
阅读次数:
229
[Luogu 2331] [SCOI2005]最大子矩阵 题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中 ...
分类:
其他好文 时间:
2017-10-12 10:10:32
阅读次数:
194