题目链接:点击打开链接
Bob is a strategy game programming specialist. In his new city building game the gaming environment is as follows: a city is built up by areas, in which there are streets, trees, factor...
分类:
其他好文 时间:
2015-01-24 20:06:06
阅读次数:
160
转载请注明出处:
首先我们可以用单调栈每行扫一遍,维护一个点向上下左右各能延伸多长。
当然,这是可以做的,也是很恶心的。
我们可以每行扫一遍,维护每个点当前的[列高度]时能向左向右的最大延伸距离。
当然,某个点可能降低一点高度,就会更宽,结果更优,但是显然既然存在这种结果,那么其它列一定可以代劳。
呃。所以每行扫一遍,然后记录这行每个节点以最大高度能向左向右延伸的最大距离...
分类:
其他好文 时间:
2015-01-20 09:05:29
阅读次数:
191
题解:
嗯,这个图确实不太好做,
但是我们可以把它转化成求全是1/0的子矩阵问题。
就是把行列奇偶性相同的点01取反,然后就好了(这是显然的,需要证明的留言)。
然后就是求最大子矩阵了。
至于正方形?求子矩阵时顺带求了,就是那个ans1,
这个显然,因为我们枚举了每一个点的延展性,所以不会漏掉任何可能性。
这么说吧,假设有一个正方形没有考虑到,那么它的长或者宽一定是一个极大值,那么就...
分类:
其他好文 时间:
2015-01-20 09:04:24
阅读次数:
183
题解:
这数据范围,来乱搞吧少年。
我的乱搞:
m==1时做一遍,m==2时做一遍。
别讨论少情况就好,m==2时时间复杂度n^3。
代码:
#include
#include
#include
#include
#define N 105
using namespace std;
int map[N][3],s[N][3],sum[N];
int f[N][N...
分类:
其他好文 时间:
2015-01-20 09:01:16
阅读次数:
176
题意就是求最大子矩阵。
白书上的例题。
如果暴力枚举 左上角,然后长和宽。时间复杂度为O(m^3*n^3)。
可以定义up[][] 为某个格子最大高度,
定义 left[][]为某个格子左扫描最大。
定义 right[][]为右扫描的最大。
最后乘起来。
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-01-19 00:18:53
阅读次数:
206
# include # include # include # include using namespace std;__int64 a[100010],l[100010],r[100010];///l[i]左边连续大于等于a[i]的下标,r[i]右边连续大于等于a[i]的下标,所以对于a[i]的...
分类:
其他好文 时间:
2015-01-11 21:37:01
阅读次数:
323
求在0-1矩阵中找出面积最大的全1矩阵
Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and return its area.
首先,想使用遍历两次的暴力方法解决是不靠谱的,先打消这个念头。
这道题的解法灵感来自于 Larg...
分类:
编程语言 时间:
2014-12-25 22:07:52
阅读次数:
259
题目链接:BZOJ - 1084题目分析我看的是神犇BLADEVIL的题解。1)对于 m = 1 的情况, 首先可能不取 Map[i][1],先 f[i][k] = f[i - 1][k]; 再考虑取一段新的的情况,用 max(f[j][k - 1] + Sum[i][1] - Sum[j][1])...
分类:
其他好文 时间:
2014-12-23 21:10:24
阅读次数:
175
简单说明下思路
如果不会最大子数组的人,请先查看最大子数组如何求解再看本文;
本文最容易相到的思路是直接暴力,但是很明显会超时,那么就会想到用动态规划了,然后这个题目的子问题是什么,确实是一个比较难以想到的问题。
本文的思路是:我先假定我的最优解在第i行开始,此时就确定了开始行,然后再假设在j行结束,最后就需要确定列的起始位置了。
我们先看看i-j的时候,这个问题会不会求解:
从i行到j行,此时,只需要确定列的起始和结束位置,和行无关,则只需要讲i-j行相加,就得到了最大子数组的问题了;
到这里就发现,固...
分类:
其他好文 时间:
2014-12-18 18:53:33
阅读次数:
177
最大子矩阵和……
一直听说dp啊什么……
好吧……暴力
一个很巧妙的思想
由于有负数肯定是不太好的
所以,a[i][j]:第i行前j个数的和
然后,从第1行开始到最后一行,枚举第i列跟第j列(j
用t记录当前结果,若t为负数,则t=a[k][i]-a[k][j]
若t为正数,t+=a[k][i]-a[k][j]
...
分类:
其他好文 时间:
2014-12-09 14:04:41
阅读次数:
188