子矩阵(NOIP2014 普及组第四题)

描述

给出如下定义:

  1. 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与 列的相对顺序)被称为原矩阵的一个子矩阵。 例如,下面左图中选取第 2、4 行和第 2、4、5 列交叉位置的元素得到一个 2*3 的子矩阵如右图所示。 图片
  2. 相邻的元素:矩阵中的某个元素与其上下左右四个元素(如果存在的话)是相邻的。
  3. 矩阵的分值:矩阵中每一对相邻元素之差的绝对值之和。

本题任务:给定一个 n 行 m 列的正整数矩阵,请你从这个矩阵中选出一个 r 行 c 列的 子矩阵,使得这个子矩阵的分值最小,并输出这个分值。

格式

输入格式

第一行包含用空格隔开的四个整数 n,m,r,c,意义如问题描述中所述,每两个整数之间用一个空格隔开。

接下来的 n 行,每行包含 m 个用空格隔开的整数,用来表示问题描述中那个 n 行 m 列的矩阵。

输出格式

输出共 1 行,包含 1 个整数,表示满足题目描述的子矩阵的最小分值。

样例1

样例输入1

5 5 2 3
9 3 3 3 9
9 4 8 7 4
1 7 4 6 6
6 8 5 6 9
7 4 5 6 1

样例输出1

6

样例2

样例输入2

7 7 3 3
7 7 7 6 2 10 5
5 8 8 2 1 6 2
2 9 5 5 6 1 7
7 9 3 6 1 7 8
1 9 1 4 7 8 8
10 5 9 1 1 8 10
1 3 1 5 4 8 6

样例输出2

16

限制

对于 50%的数据,1 ≤ n ≤ 12, 1 ≤ m ≤ 12, 矩阵中的每个元素 1 ≤ a[i][j] ≤20;

对于 100%的数据,1 ≤ n ≤ 16, 1 ≤ m ≤ 16, 矩阵中的每个元素 1 ≤ a[i][j] ≤1000,1 ≤ r ≤ n, 1 ≤ c ≤ m。

时间限制:每一组测试数据1s。

提示

【输入输出样例 1 说明】
该矩阵中分值最小的 2 行 3 列的子矩阵由原矩阵的第 4 行、第 5 行与第 1 列、第 3 列、 第 4 列交叉位置的元素组成,为


\begin{array}{ccc}
6 & 5 & 6\\
7 & 5 & 6\\
\end{array}

,其分值为 |6 − 5| + |5 − 6| + |7 − 5| + |5 − 6| + |6 − 7| + |5 − 5| + |6 − 6| = 6。

【输入输出样例 2 说明】
该矩阵中分值最小的 3 行 3 列的子矩阵由原矩阵的第 4 行、第 5 行、第 6 行与第 2 列、第 6 列、第 7 列交叉位置的元素组成,选取的分值最小的子矩阵为

\begin{array}{ccc}
9 & 7 & 8\\
9 & 8 & 8\\ 
5 & 8 & 10\\
\end{array}

转载于:https://www.cnblogs.com/tanjiaqi/p/7622140.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux spinlock/rwlock/seqlock原理剖析(基于ARM64)

背景Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述吹起并发机制研究的进攻号角了!作为第一篇文章,应该提纲挈领的介绍下并发。什么是并发,…

isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法

本文主要向大家介绍了MySQL数据库之MySQL 出现 The table is full 的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。当我们要写入新数据而发生“The table is full”告警错误时,先不要着急,按照下面的思…

RabbitMQ 资料整理

前言: 官方教程:    https://www.rabbitmq.com/getstarted.html 应用场景(之马云赚钱):    http://blog.csdn.net/whoamiyang/article/details/54954780    http://www.cnblogs.com/saltlight-wangchao/p/…

爸爸都老了

今天是父亲节,早上韦泽楠去上绘画课,我睡了个回笼觉,一觉睡到了十一点。起来的时候老婆买了新鲜的荔枝和龙眼,当然我没有马上吃,我不是一个随便的男人,我刷了牙,洗了脸,再回到客厅慢…

java输出日志_java代码中如何正确使用loggger日志输出

java代码中如何正确使用loggger日志输出发布时间:2019-06-28作者:spider阅读(2980)当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定为的。使用slf4…

C#数组的声明方式

C#数组的五种声明方式一、声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例int[] intArray;intArray new int[10];注:数组的引用必须以相同或相关类型实例化,数组初使化默认值,值类型为0,引用类型…

大学的多级放大电路,你交给老师了吗?

第一章 设计任务1.1项目名称:设计三极管多级音频放大电路本项目的主要内容是设计并实现三极管多级音频放大功能。该电路将所学习的三极管基本放大电路与功率放大电路有机结合。1.2项目设计说明(1)设计任务和要求使用常见的小功率三极管设计一…

【u204】高级砝码称重

Time Limit: 1 second Memory Limit: 128 MB 【问题描述】 现有n个砝码,重量分别为a1,a2,a3,……,an,在去掉m个砝码后,问最多能称量出多少不同的重量(不包括0)。 【输入…

第十四节TypeScript 联合类型

1、简介 联合类型可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。 注意:只能赋值指定的类型,如果赋值其它类型就会报错的。 2、创建联合类型的语法格式: Type1|Type2|Type3 实例&a…

Linux进程调度器-基础

背景Read the fucking source code! --By 鲁迅A picture is worth a thousand words. --By 高尔基说明:Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio1. 概述从这篇文章…

java spring注解_spring注解是如何实现的?

注解呢,是java本身自带的一个东西,它基于java的接口进行实现,是一种特殊的接口类型,通常对于注解来说,三种情况,一个是在编译前就会被丢弃的,一个是编译后留在class中的,另一种是会一…

每天学习点--------第五天(2017-10-9) 摘要: 常用的集合

今天学习 java.util下面的软件包 包含 collection框架、遗留的coolection类、事件模型、日期和时间设施、国际化和各种工具类&#xff08;字符串标记生成器、随机数生成器和位数组&#xff09; 一、Collenction<.E> 接口 转载于:https://www.cnblogs.com/hanxue112253/p/…

Linux内存,先看这篇文章

内存大小计算我们拿32位系统来举个栗子2^32 ‭4,294,967,296‬ bytes‭4,294,967,296‬ bytes / 1024 ‭4,194,304‬ kbytes4,194,304‬ kbytes / 1024 ‭4,096‬ M‭4,096‬ M /1024 4G物理内存如何分页&#xff1f;分段和分页计算机内存管理的两种方式&#xff0c;这里我…

cloudstack java api_CloudStack API编程指引

前言本文阐述为CloudStack编写新API或者更新已存在API时应遵循的约定和编程指引。参考文档(暂略)介绍当你需要为CS添加新的API时&#xff0c;需要创建一个Request类和Response类(或者在扩展CS API功能时它的API Responese已经定义的情况下重用已经存在的API Response类)。编写C…

深入解析hostname

结论&#xff1a;/etc/sysconfig/network 确实是hostname的配置文件&#xff0c;hostname的值跟该配置文件中的HOSTNAME有一定的关联关系&#xff0c;但是没有必然关系&#xff0c;hostname的值来自内核参数/proc/sys/kernel/hostname&#xff0c;如果我通过命令sysctl kernel.…

在ODM公司要不要跳槽到创业公司

读者朋友提问&#xff1a; 发哥&#xff0c;我现在在手机odm公司做指纹模块做了两三个月&#xff0c;基本天天加班到十点以后&#xff0c;后面要被调到camera团队&#xff0c;但是从这几个月的经历来看&#xff0c;感觉学到的不多&#xff0c;代码都是供应商写的&#xff0c;很…

php des加密 和java胡同_PHP版本DES加密解(对应.net版与JAVA版)

标签&#xff1a;/**** DES FOR .NET版本* author Administrator**/class DES_NET{var $key;var $iv; //偏移量function DES_NET( $key, $iv0 ) {//key长度8例如:1234abcd$this->key $key;if( $iv 0 ) {$this->iv $key; //默认以$key 作为 iv} else {$this->iv $i…

安卓系统应用启动流程分析

随着移动开发的兴起&#xff0c;安卓系统的重要性愈加突显。本文简要介绍安卓系统上应用启动流程&#xff0c;对于应用开发、系统定制以及性能优化人员来说&#xff0c;熟悉应用启动流程会使得在今后的工作中更加得心应手&#xff0c;做到知其然&#xff0c;知其所以然。本文主…

bootstrap 居中 表格中_使用Twitter Bootstrap在表格单元格中垂直居中

Tom Sarduy..156FOR BOOTSTRAP 3.X:Bootstrap现在具有表格单元格的以下样式:.table tbody > tr > td{vertical-align: top;}要做的就是添加自己的类,为前一个选择器添加更多特异性:.table tbody > tr > td.vert-aligned {vertical-align: middle;}然后将类添加到您…

撞车咋办

出门行车&#xff0c;最怕的就是遇到事故&#xff0c;老司机倒还好&#xff0c;这新手司机以及咱们的女司机遇到事故第一反应肯定是傻眼了。那么真要遇到事故了怎么办呢&#xff1f; 今天小编就来给大家讲讲遇到事故应该如何理智应对&#xff01; 一、单方事故 就是你没碰到人或…