蓝桥杯 矩阵相加 模拟

news/2024/7/20 23:14:21 标签: 深度优先, 算法, 动态规划

问题描述

  小蓝有一个 100 行 100 列的矩阵,矩阵的左上角为 1。其它每个位置正好比其左边的数大 2,比其上边的数大 1 。

        例如,第 1 行第 2 列为 3,第 2 行第 2 列 为 4,第 10 行第 20 列为 48。   

        小蓝想在矩阵中找到一个由连续的若干行、连续的若干列组成的子矩阵,使得其和为 2022,请问这个子矩阵中至少包含多少个元素(即子矩阵的行数和列数的乘积)。

答案提交

  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

=========================================================================

import java.io.IOException;

public class Main0 {
    public static int min = Integer.MAX_VALUE;

    public static void main(String[] args) throws IOException {
        int[][] ss = new int[100][100];
        ss[0][0] = 1;
        for (int i = 1; i < 100; i++) {
            ss[i][0] = ss[i - 1][0] + 1;
            ss[0][i] = ss[0][i - 1] + 2;
        }
        for (int i = 1; i < 100; i++) {
            for (int j = 1; j < 100; j++) {
                ss[i][j] = ss[i][j - 1] + 2;
            }
        }
        int[][] dp = new int[100][100];
        updateDP(ss, dp);
        // 对每个点进行遍历
        for (int i = 0; i < 100; i++) {
            for (int j = 0; j < 100; j++) {
                dfs(ss, dp, i, j);
            }
        }
        System.out.println();
    }

    private static void dfs(int[][] ss, int[][] dp, int x, int y) {
        int cur = ss[x][y] - 1;
        for (int xLen = 1; x + xLen < 100; xLen++) {
            for (int yLen = 1; y + yLen < 100; yLen++) {
                int mut = xLen * yLen;
                int temp = cur * mut + dp[xLen - 1][yLen - 1];
                if (temp > 2022) break;
                if (temp == 2022) {
                    min = Math.min(min, mut);
                    System.out.println("x:" + x);
                    System.out.println("y:" + y);
                    System.out.println("ss[x][y]:" + ss[x][y]);
                    System.out.println("xLen:" + xLen);
                    System.out.println("yLen:" + yLen);
                    System.out.println("min:" + min);
                    System.out.println("===================================================");
                }
            }
        }
    }

    private static void updateDP(int[][] ss, int[][] dp) {
        dp[0][0] = 1;
        for (int i = 1; i < 100; i++) {
            dp[i][0] = dp[i - 1][0] + ss[i][0];
            dp[0][i] = dp[0][i - 1] + ss[0][i];
        }
        for (int i = 1; i < 100; i++) {
            for (int j = 1; j < 100; j++) {
                dp[i][j] = dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1] + ss[i][j];
            }
        }
    }
}

http://www.niftyadmin.cn/n/843138.html

相关文章

Vue调试神器 vue-devtools 的安装(插件商店下载)

vue项目必备的调试工具 各种下载&#xff0c;GitHub下载&#xff0c;各种npm进行intsall&#xff0c;接下来输入npm install bulid&#xff0c;还老是失败&#xff0c;报这种那种的错误&#xff0c;最后历尽千辛万苦弄好了&#xff0c;但是老崩溃&#xff0c;崩溃的想哭&#x…

蓝桥杯 LQ三角形 模拟

问题描述 给定一个字母矩阵&#xff0c;定义一个LQ三角形为某行中连续的几个字母、某列中连续的几个字母和一条45度的斜线中连续的几个字母组成的等腰直角三角形的边缘部分&#xff0c;其中每条边上的字母数量相等且至少为2 。    例如&#xff0c;对于下面的字母矩阵中&…

webpack打包 修改dist文件夹名字(还有一些打包的基础知识记录哈~)

demo仅供记录webpack打包的一些基础知识点~ webpack.config.js 默认webpack打包配置文件&#xff08;文件名字也可以修改的&#xff09; const path require(path) module.exports {entry: ./index.js,//从index.js文件开始打包output: {filename: bundle.js, //打包后文件…

vue项目打包:修改dist文件名

vue.config.js // 输出文件目录(默认dist)outputDir: smf,use strict const path require(path) const defaultSettings require(./src/settings.js)function resolve(dir) {return path.join(__dirname, dir) }const name defaultSettings.title // 网址标题 //const port …

解决vue中vue-cli项目报错sockjs.js报错

在做vue项目时&#xff0c;突然就报sockjs.js?9be2:1606 GET http://192.168.43.226:8080/sockjs-node/info?t1584966826465 net::ERR_CONNECTION_TIMED_OUT这个错误 原因&#xff1a; sockjs-node是一个JavaScript库&#xff0c;提供跨浏览器JavaScript的API&#xff0c;创…

vue2之vue.config.js文件 常用配置教程

vue.config.js 相当于之前的webpack 打包工具 配置目录 const path require(path);function resolve(dir) {return path.join(__dirname, dir) }module.exports {productionSourceMap: false,// 生产环境是否要生成 sourceMappublicPath: ./, // 部署应用包时的基本 URL…

IDEA mvn阿里云镜像设置 保姆级教程

设置 打开 文件-设置 搜索mvn 修改用户设置文件 和 本地仓库 路径为自己喜欢的目录下 以下为我此处的文件 新项目设置&#xff08;创建新项目默认设置&#xff09; 打开 文件 - 新项目设置 - 新项目的设置 把刚才的设置设置一遍 文件 地址&#xff1a;https://down…

VUE报错:Avoid mutating a prop directly since the value will be overwwritten whenever the parent及解决方案

VUE报错&#xff1a; [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “list” 大概意思是&#x…