最大矩阵和
【编程题目 |100分】最大矩阵和 【2021 H2,2022 Q1,Q2 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
给定一个二维整数矩阵,要在这个矩阵中选出一个子矩阵,使得这个子矩阵内所有的数字和尽量大,我们把这个子矩阵称为和最大子矩阵,子矩阵的选取原则是原矩阵中一块相互连续的矩形区域。
输入描述:
- 输入的第一行包含2个整数n, m(1 <= n, m <= 10),表示一个n行m列的矩阵,下面有n行,每行有m个整数,同一行中,每2个数字之间有1个空格,最后一个数字后面没有空格,所有的数字的在[-1000, 1000]之间。
输出描述:
- 输出一行一个数字,表示选出的和最大子矩阵内所有的数字和。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
3 4
-3 5 -1 5
2 4 -2 4
-1 3 -1 3
输出
20
说明
一个3*4的矩阵中,后面3列的子矩阵求和加起来等于20,和最大。
代码实现
C++
#include<bits/stdc++.h> using namespace std; int main() {
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; public class Main { public static void main (String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String[] str = sc.nextLine().split(" "); int n = Integer.parseInt(str[0]); int m = Integer.parseInt(str[1]);
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Main { public static Map<Node04, Integer> usedMap = new HashMap<>(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] nums = sc.nextLine().split(" "); int n1 = Integer.parseInt(nums[0]); int m1 = Integer.parseInt(nums[1]);
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA解法三
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][] ints = new int[n][m];
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JavaScript
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。