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米