题目链接:https://vjudge.net/problem/POJ-2185 题意:给定由大写字母组成的r×c矩阵,求最小子矩阵使得该子矩阵能组成这个大矩阵,但并不要求小矩阵刚好组成大矩阵,即边界部分可以空缺(见样例)。 思路: 把每一行视作一个字符,然后对r行求next数组,那么r-nex[r ...
分类:
编程语言 时间:
2019-11-05 13:48:25
阅读次数:
80
用f[i][j][k]表示第一行前i个数,第二行前j个数选k个子矩形的答案,考虑转移:1.在第一行/第二行选择一个矩形2.当i=j时,可以选择一个两行的矩形注意要特判m=1的情况 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,t ...
分类:
其他好文 时间:
2019-11-04 17:58:49
阅读次数:
111
我们有时会遇到这样一类问题:在一个大矩阵中求出满足某些限制的最大子矩阵。使用悬线法可以在O(n2)的时间内求解这类问题。 要知道最大子矩阵的大小,我们只要求出其上下左右四个方向上的边界就可以了。使用悬线法时,我们枚举每一行i,计算以i为下边界的最大子矩阵,再计算对于每一个位置,包含它的最大子矩阵的边 ...
分类:
其他好文 时间:
2019-11-03 13:07:01
阅读次数:
96
这题的正确做法是最大子矩阵,模板题 先介绍一下最大子矩阵的做法 这篇题解是蒟蒻把王知昆大佬的《浅谈极大化思想解决最大子矩阵》整理出来的 wzk大佬论文最重要的两个定义 有效子矩形:内部不包含障碍点的子矩形 极大有效子矩形:即是一个有效子矩形,切不能在找到一个包含他的有效子矩形 ...
分类:
其他好文 时间:
2019-10-30 16:36:53
阅读次数:
91
[TOC] 参考文献 "四叉树" "树套树" 以及和zhoufangyuan巨佬的激烈~~♂~~讨论 参考文献 大家好我口糊大师又回来了。 给你一个$n n$矩阵,然后让你支持两种操作,对子矩阵加值和对子矩阵查和。 暴力写法 对于每一行开一个线段树,然后跑,时间复杂度$n^2logn$。 优点: 1 ...
分类:
其他好文 时间:
2019-10-27 22:27:36
阅读次数:
122
题目来源:http://noi.openjudge.cn/ch0206/1768/ 1768:最大子矩阵 1768:最大子矩阵 总时间限制: 1000ms;内存限制: 65536kB 总时间限制: 1000ms;内存限制: 65536kB 描述:已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵, ...
分类:
其他好文 时间:
2019-10-26 20:36:34
阅读次数:
125
int a[mxn][mxn],b[mxn][mxn]; int main() { int n,mx = -1e9; cin>>n; cin2(a,n,n); b[1][0] = 0;b[0][1] = 0; rep(n) b[1][i] = max( a[1][i],a[1][i]+b[1][i- ...
分类:
其他好文 时间:
2019-10-24 00:05:59
阅读次数:
94
题目背景 王7的生日到了,他的弟弟准备送他巧克力。 王7的生日到了,他的弟弟准备送他巧克力。 题目描述 有一个被分成n*m格的巧克力盒,在(i,j)的位置上有a[i,j]块巧克力。就在送出它的前一天晚上,有老鼠夜袭巧克力盒,某些位置上被洗劫并且穿了洞。所以,你——王7的弟弟王八王9,必须从这个满目苍 ...
分类:
其他好文 时间:
2019-10-22 00:33:28
阅读次数:
100
P2258 子矩阵 二进制枚举套二进制枚举能过多一半的点; 我们只需要优化一下第二个二进制枚举的部分; 首先我们先枚举选哪几行,再预处理我们需要的差值,上下,左右; sum_shang,sum_heng 然后DP查找最小值 dp[i][j]表示前i列已经选了j列; #include<cstdio> ...
分类:
其他好文 时间:
2019-10-15 09:24:51
阅读次数:
98
最大子段和(略) 定义一个最大值dp[i]表示以i结尾的最大子段和; 初始化: dp[0]=A[0]; dp[i]=max(dp[i 1]+A[i],A[i]) 即dp[i 1]+A[i]1 && h[j]= 0 这样的话对于后面加入的数来说,我们前面所加的数是有意义的,因为变量还是一个正数(虽然减 ...
分类:
其他好文 时间:
2019-10-08 12:26:41
阅读次数:
102