最大矩阵和


【编程题目 |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++


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
int main()
{
#include<bits/stdc++.h> using namespace std; int main() {
#include<bits/stdc++.h>

using namespace std;

int main()
{

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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]);
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]);
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%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

JAVA解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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]);
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]);
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%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


JAVA解法三


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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];
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];
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%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看


JavaScript


剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看