题意:http://acm.hdu.edu.cn/showproblem.php?pid=1506 如图,求最大的矩形面积思路:笛卡尔树:笛卡尔树是一棵二叉树,树的每个节点有两个值,一个为key,一个为value。光看key的话,笛卡尔树是一棵二叉搜索树,每个节点的左子树的key都比它小,右子树都比...
分类:
其他好文 时间:
2015-08-15 18:17:31
阅读次数:
119
这是一道思维题,N多个正方形铺成的矩形,其中弄坏一个点,问分割的最大的矩形中面积最小是多少,首先明确,没有坏点的时候,这个答案是不是确定的,想来想去会发现一定是确定的,最小的边+1除2,那么假如坏点之后对这个结果是如何影响的呢?假如坏点之后一定会是结果变大! 那么答案无非是五种,第一种 最小的边+....
分类:
其他好文 时间:
2015-07-30 20:58:28
阅读次数:
116
问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中七个矩形的高度就分别是2, 1, 4, 5, 1, 3, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下...
分类:
其他好文 时间:
2015-07-30 12:50:27
阅读次数:
333
问题描述在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示...
分类:
其他好文 时间:
2015-07-28 00:37:43
阅读次数:
188
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5301题意: n*m的矩阵,删除一个格子x,y。用矩形来填充矩阵。且矩形至少有一边是在矩阵的边缘上。求满足条件的矩形填充方式中面积最大的矩形,要使得该最大矩形的面积最小。解法见代码代码:#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-07-24 13:07:41
阅读次数:
129
题目传送门 1 /* 2 题意:n*m列的矩阵,删除一个格子x,y。用矩形来填充矩阵。且矩形至少有一边是在矩阵的边缘上。 3 求满足条件的矩形填充方式中面积最大的矩形,要使得该最大矩形的面积最小。 4 分析:任何矩形都可以分为宽度为1的小矩形,所以只考虑矩形的可以的最小长度即...
分类:
其他好文 时间:
2015-07-23 21:30:46
阅读次数:
148
题目信息如下:
1、题目地址为:https://leetcode.com/problems/largest-rectangle-in-histogram/
2、题目意思为:
给定一个非负数组height,代表了矩形的高度(其中矩形宽度为1),求在其中能找出最大的矩形面积。
3、给的例子为: height = [2,1,5,6,2,3]. 输出为:10.示意图如下
那么...
分类:
其他好文 时间:
2015-07-12 21:43:49
阅读次数:
105
// poj 2559 Largest Rectangle in a Histogram 栈
//
// n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起)
//
// 这道题用的是数据结构做,也可以递推做,目前只会数据结构的
//
// 对于每个高度h,求一个左边界L和右边界R,分别表示的意义是
// L是下标为j的矩形的高度的hj小于当前h的最大的j的值。则根据定义
//...
分类:
其他好文 时间:
2015-06-06 00:33:09
阅读次数:
143
1.注意要把a[]定义为LL,我在这里wa了N次
2.寻找边界时,得用dp思想
AC代码:#include
#include
#define LL long long
using namespace std;
const LL INF=1<<60;
LL a[100005];//要定义为LL
int L[100005];
int R[100005];
int main()
{
in...
分类:
其他好文 时间:
2015-05-07 00:55:21
阅读次数:
108
给定从左到右多个矩形,已知这此矩形的宽度都为1,长度不完全相等。这些矩形相连排成一排,求在这些矩形包括的范围内能得到的面积最大的矩形,打印出该面积。所求矩形可以横跨多个矩形,但不能超出原有矩形所确定的范围。l[i]表示大于等于h[i]的最左边的位置,r[i]表示大于等于h[i]的最右边的位置,这样可以预处理出l[],r[],然后ans = max(ans, r[i] - l[i] + 1) * h[...
分类:
其他好文 时间:
2015-04-16 21:59:32
阅读次数:
187