首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

51Nod 1051 最大子矩阵

1051 最大子矩阵和 基准时间限制:2 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。...例如:3*3的矩阵: -1 3 -1 2 -1 3 -3 1 2 和最大的子矩阵是: 3 -1 -1 3 1 2 Input 第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。...第2 - N + 1行:矩阵中的元素,每行M个数,中间用空格隔开。(-10^9 <= M[i] <= 10^9) Output 输出和的最大值。如果所有数都是负数,就输出0。...Input示例 3 3 -1 3 -1 2 -1 3 -3 1 2 Output示例 7 复习了一下n^3最大子矩阵的写法 注意在写前缀和的时候别忘了左端点的坐标是i-1不是i 1 #include

71460

算法练习(4) - 最大子数组

1 分治法 问题分析思路 将 数组 a[i...j]进行近二等分为2个子数组: a[i...mid] , a[mid+1 ... j]; 设最大子数组的下标为 left,right,那么left ,right...和 right 要么都在mid左边,要么都在mid右边,或者一个在左边,一个在右边; 那么接下来我们看一下,将数组完全二分后,求解思路: 先将数组进行二分 可以看到,分解后最小问题为单元素求解,最大子数组即为其自身...; image-b0db3ae1f48c4e5eac15e17fe6aa584d.png 到第二级时(此时数组只有2个元素),且已知左子数组的 最大子数组 和 右子数组的最大子数组,那么只剩下求解...我们可以再往上看一级 image-c4290db2231e4e059ec288ec555f57ac.png 以此类推,我们可以知道,实际上最后的问题都转化为了 跨 mid的结果 与 二分后的左右子数组的最大子数组的...2个结果 三个之中作比较取最大值,而 左右子数组的最大子节点到最后又转化为了单节点,所以最终问题转化为了 跨mid情况的求解; package top.buukle.buukle._03MaxSubarray

19410

04:匹配的矩阵

04:匹配的矩阵 总时间限制: 1000ms 内存限制: 65536kB描述 给定一个m*n的矩阵A和r*s的矩阵B,其中0 < r ≤ m, 0 < s ≤ n,A、B所有元素值都是小于100的正整数...求A中一个大小为r*s的子矩阵C,使得B和C的对应元素差值的绝对值之和最小,这时称C为匹配的矩阵。如果有多个子矩阵同时满足条件,选择子矩阵左上角元素行号小者,行号相同时,选择列号小者。...之后m行每行有n个整数,表示A矩阵中的各行,数与数之间以一个空格分开。 第m+2行为r和s,以一个空格分开。 之后r行每行有s个整数,表示B矩阵中的各行,数与数之间以一个空格分开。...(1 ≤ m ≤ 100,1 ≤ n ≤ 100)输出输出矩阵C,一共r行,每行s个整数,整数之间以一个空格分开。...14 int minnow; 15 int wzh;//储存匹配矩阵的位置 16 int wzl; 17 void find() 18 { 19 for(int i=1;i<=n-r+1;i

1.5K80
领券