当前位置: 首页 > news >正文

义乌做网站公司哪家好哈尔滨最新信息

义乌做网站公司哪家好,哈尔滨最新信息,海南网站建设小强,宁波做外贸网站建设题目内容 原题链接 给定一个 n n n 行 m m m 列的矩阵,问权值最大的子矩阵的权值是多少。 对于一个矩阵,其权值定义为矩阵中的最小值 m i n v minv minv 乘上矩阵中所有元素的和。 数据范围 1 ≤ n , m ≤ 300 1\leq n,m \leq 300 1≤n,m≤300 1 ≤…

题目内容

原题链接

给定一个 n n n m m m 列的矩阵,问权值最大的子矩阵的权值是多少。

对于一个矩阵,其权值定义为矩阵中的最小值 m i n v minv minv 乘上矩阵中所有元素的和。

数据范围

  • 1 ≤ n , m ≤ 300 1\leq n,m \leq 300 1n,m300
  • 1 ≤ a i ≤ 300 1\leq a_i\leq 300 1ai300

题解

对于这类矩阵问题,通常做法都是枚举矩阵的下边界和下边界,这样就可以将矩阵看成一个一维数组问题。

考虑对于一个一维数组,找到其中一个子数组(连续子序列),满足子数组的最小值乘上子数组的元素和最大。

那么问题就非常显然了,考虑数组中每个元素作为子数组的最小值,考虑这个子数组的左右端点,就是考虑其左边和右边第一个小于其的元素即可。这个就是单调栈的经典应用,单调栈在这里是 O ( m ) O(m) O(m) 的。

时间复杂度: O ( n 2 m ) O(n^2m) O(n2m)

代码

#include <bits/stdc++.h>
using namespace std;const int N = 310;
int a[N][N];
// 列前缀和
int col[N][N];
int stk[N];
// up ~ down 这个上下界内每个列左边第一个小于该列最小值的列
int L[N], R;
// up ~ down 这个上下界内每个列的元素之和 的前缀和
int pre[N];
// up ~ down 这个上下界内每个列的最小值
int cmin[N];// up ~ down 内一个列的元素和
int up, down;
int v(int idx) {return col[down][idx] - col[up - 1][idx];
}int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= n; ++i)for (int j = 1; j <= m; ++j) {cin >> a[i][j];// 每一行的前缀和col[i][j] = col[i - 1][j] + a[i][j];}long long ans = 0;// 枚举子矩阵的上下边界for (up = 1; up <= n; ++up) {for (int j = 1; j <= m; ++j) cmin[j] = a[up][j];for (down = up; down <= n; ++down) {// 每一列的最小值for (int j = 1; j <= m; ++j) cmin[j] = min(cmin[j], a[down][j]);int top = 0;for (int j = 1; j <= m; ++j) {while (top > 0 && cmin[stk[top]] >= cmin[j]) top -= 1;if (top == 0) L[j] = 1;else L[j] = stk[top] + 1;stk[++top] = j;// 每一行的前缀和pre[j] = pre[j - 1] + v(j);}top = 0;for (int j = m; j >= 1; --j) {while (top > 0 && cmin[stk[top]] > cmin[j]) top -= 1;if (top == 0) R = m;else R = stk[top] - 1;stk[++top] = j;ans = max(ans, 1ll * (pre[R] - pre[L[j] - 1]) * cmin[j]);}}}cout << ans << "\n";return 0;
}
http://www.ds6.com.cn/news/116091.html

相关文章:

  • 东莞seo推广运营服务百度惠生活怎么优化排名
  • 深圳网站建设公司信息深圳网站建设运营
  • 深圳网站建设制作品牌公司中国十大门户网站排行
  • 手机wap网站定位如何联系百度推广
  • 免费网站建设社区深圳抖音seo
  • 织梦做的网站怎么添加关键词搜索引擎营销的优缺点
  • 长春哪个做网站的公司比较靠谱seo公司杭州
  • 系统更新东莞搜索网络优化
  • 什么网站可以免费发布招聘信息seo教程自学
  • 那个做我女朋友的网站关键词优化排名用哪个软件比较好
  • wordpress调用指定文章图片seo搜索引擎优化知乎
  • 我要免费建立一个网站吗如何发布自己的广告
  • 定制高端网站建设报价百度网页排名怎么提升
  • 做教育app的网站谷歌google下载安卓版 app
  • 日本做的视频网站网络营销的种类
  • 企业网站模板下载网站模板下载百度推广效果怎么样
  • 网站开发网站制作报价永久免费客服系统有哪些软件
  • 开拓网站建设公司网络营销有什么
  • 宜昌市做网站色盲色弱测试
  • java做的是网站还是系统市场调研流程
  • 广州自助公司建网站企业今日新闻 最新消息 大事
  • 网站建设企业建站哪家好网络seo招聘
  • 刷推广seo系统培训哪家好
  • 山西响应式网站设计小红书推广方案
  • 给公司做网站的费用入什么科目软文网站推广法
  • 网站建设图片居中代码企业网站制作
  • 南平建设集团有限公司网站互联网广告公司
  • 网站总浏览量免费的网页模板网站
  • 设计专业所需网站网络推广合同
  • 做网站主要来源360收录