要求: 1,输入一个二维整形数组,数组里有正数也有负数。 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值。 设计思路: 参照一维整数数组求解最大子数组的方法,我们想着将二维数组通过行不同,列相加的方法转化为一维整数数组再求解最大子数组之和。 具体实 ...
分类:
编程语言 时间:
2018-10-20 18:25:20
阅读次数:
170
枚举指的是枚举矩阵的上下界,然后根据p0, p1, p2的关系去找出另外的中间2个点。然后需要记忆化一些地方防止重复减少时间复杂度。这应该是最关键的一步优化时间,指的就是代码中to数组。然后就是子矩阵的一个计算了,需要用二维前缀和预处理数据,然后判断的时候直接O(1)查询就好了。 ...
分类:
其他好文 时间:
2018-10-15 01:17:39
阅读次数:
176
http://codeforces.com/contest/1060/problem/C 题意: a、b数组长度分别为n、m。矩阵C,Cij=ai*bj。在C中找到一个子矩阵,该子矩阵所有元素和不大于x,求这样的子矩阵的最大面积。 思路: 1、将矩阵元素和转换为(Ai+……+Aj)*(Bk+……+B ...
分类:
其他好文 时间:
2018-10-05 23:03:08
阅读次数:
199
737-石子合并(一) 内存限制:64MB 时间限制:1000ms 特判: No通过数:28 提交数:35 难度:3 题目描述: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为 ...
分类:
其他好文 时间:
2018-10-05 21:33:09
阅读次数:
256
已知一个长度为n的数组a和一个长度为m的数组b,问当两者相乘组成矩阵时求满足子矩阵中所有数相加小于x的最大面积 数学题,这个问题可以转化为从A和B中找到一个子阵列,使得这些子阵列的元素总和的乘积小于或等于x,并且它们的大小的乘积是最大的 ...
分类:
其他好文 时间:
2018-10-05 20:19:33
阅读次数:
94
链接 [http://poj.org/problem?id=1050] 题意 给你一个矩阵,让你求子矩阵中的元素之和最大 分析 其实跟最大和子序列一样只不过维数增加了,你只需要降维就好了 代码 include include using namespace std; define ll long l ...
分类:
其他好文 时间:
2018-10-05 16:07:35
阅读次数:
166
Codeforces Round 513 游记 A Phone Numbers 题目大意: 电话号码是 开头的$1$位数字。告诉你$n(n\le100)$个数字,每个数字至多使用一次。问最多能凑出多少个电话号码。 思路: 统计 出现的次数,如果有多余的 不能作为开头,那么就将其放到后面去 源代码: ...
分类:
其他好文 时间:
2018-10-04 20:31:25
阅读次数:
278
Description 一个N*M的方格,初始时每个格子有一个整数权值,接下来每次有2个操作: 改变一个格子的权值 求一个子矩阵中某个特定权值出现的个数 一个N*M的方格,初始时每个格子有一个整数权值,接下来每次有2个操作: 改变一个格子的权值 求一个子矩阵中某个特定权值出现的个数 Input 每一 ...
分类:
Web程序 时间:
2018-10-04 11:01:06
阅读次数:
246
暴力水过系列数据范围这么小,就打暴力吧枚举最大公共子矩阵的边长O(n)枚举两个最大公共子矩阵的左上角O(n^4)判断是否相同O(n^2)总复杂度O(n^7),显然过不了过不了怎么办,删冗余枚举啊一堆优化:1,倒序枚举边长,一旦满足,即为答案2,判断是否相同,一旦不同,跳出去然后就过了 ...
分类:
Web程序 时间:
2018-10-02 20:27:49
阅读次数:
217