1. 如何求圆内面积最大的矩形
思路:要求矩形面积最大,何时最大呢,肯定有一条边落在半圆唯一的直径上,那么不妨将此半圆沿该直径翻转180度,则形成一个圆,而我们要求的矩形成了两个,而且刚好组成一个大的矩形,面积是原来的两倍,若原面积最大,则新矩形面积也得最大,而圆中面积最大的矩形是以直径为对角线的正方形,则原半圆中面积最大的矩形则是该正方形面积的一半,正方形面积是圆的直径乘以半径。
2. 算法题--求最大矩形面积
题目链接
Given n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3].
The largest rectangle is shown in the shaded area, which has area = 10 unit.
Example:
输出结果
3. 怎样求包含在多边形内的最大矩形
我以前做过求任意封闭区域最小外接矩形的算法。不过你这个是求最大内接矩形,难度大很多。建议你到中国期刊网上搜索相关算法。
我求最小外接矩形是用了旋转边界点的方法,我想应该也能求出最大内接矩形,不过运算量会很大。
我的方法是一种近似算法,精确度很高(因为屏幕上的点是离散的)。
基本思想:每次以◎角旋转边界点,旋转后求出一个面积最大的正内包含矩形(记录下来)。直到一共转过90度,这样可得到90/◎个正内包含矩形,其中最大的就是该封闭区域的最大内包矩形。
正内包含矩形是指由水平和垂直线段构成的内包含矩形。
问题的最大难点就是:要求出每次旋转后的最大的正内包含矩形。一个简单想法:每隔M点取出一点,求出N/M(N为总点数)个正内包含矩形取最大的那个。
这样做就很近似了。
求一个点的正内包含矩形应该不难。
4. 算法-最大矩形面积(解释思路)
有连续立柱,底边是1,高度不等2,1,5,6,2,3,4,6,6,2,1,2,3 求这些立柱中包含的最大矩形面积。如图所示,最大面积为12
5. 最大加权矩形的算法和动态规划方程
只有展开才可以看到排版
#include <cstdio>
#include <cmath>
using namespace std;
const int XJ = -9000000;
const int maxn = 3000 + 5;
int n, m, a[maxn][maxn], rowsum[maxn][maxn], area, ans;
int main(){
int i, j, k;
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
a[i][j] = 1;
for (int i = 1; i <= m; i++){
int x, y;
scanf("%d %d", &x, &y);
a[x][y] = XJ;
}
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
rowsum[i][j] = rowsum[i][j-1] + a[i][j];
for (i = 1; i <= n; i++)
for (j = i; j <= n; j++){
area = 0;
for (k = 1; k <= n; k++)
if (k){
area += rowsum[k][j] - rowsum[k][i-1];
int qwq = sqrt(ans);
if (area > ans) ans = area;
if (area < 0) area = 0;
}
}
printf("%d", ans);
return 0;
}
6. 计算最大内接矩形
郭敦颙回答:
经测量矩形的长为7.5(单位长:cm),宽为3.25(单位长:cm)。
上图逆时针旋转60°,下图逆时针旋转30°。
(1)在上图中,设内接矩形ABCD为最大(面积S最大),对角线AC,BD的交点为O,点A,C在黑色矩形EFGH上
矩形ABCD为正方形时最大,设边长为x =AB=BC=AD=CD,
AD∥BC∥橙色矩形长边。
延长AD交黑色矩形EFGH长边FG于K,
在Rt⊿CDK中,有CD/KD=√3/1;
延长CB交黑色矩形EFGH另一长边GH于L,
在Rt⊿ABL中,有AB/LB=√3/1。
作EW∥LC,且有EW= LC,
在Rt⊿EFW中,∠EWF=60°,
EW=EF/sin60°=3.25/[(1/2)√3]=3.752777,FW=EW/2=1.876388。
LC= EW=3.752777,
Rt⊿ABL∽Rt⊿EFW,
LB= 3.752777-x
在Rt⊿ABL中,因有AB/LB=√3/1,
∴x/(3.752777-x)=√3/1,
x=√3(3.752777-x),2.73205x=6.5
x=2.379166
∴最大内接矩形ABCD为正方形时最大,边长AB=BC=AD=CD=2.379166。
(不另绘图,注意在原图上加辅助线并标明各点位置)
(1)在下图中,有类似有结果,最大内接矩形也为正方形,只是正方形的边
AD∥BC∥黑色矩形长边。详情略。
7. 如何求矩形面积最大时的面积
设垂直于BC边的矩形边为x米,另一边为y米,
根据相似三角形对应高的比等于相似比,得
(80-x):80=y:100
y=(80-x)5/4
矩形面积s=xy=x(80-x)5/4
=-5/4x^2+100x
当x=-b/2a=40米时,y有最大值2000平方米,
所以,矩形两边长为40米,50米