3、求三角形最大面積問題(********.pas/cpp)
【題目描述】
聖誕節快到了。你接受了一件光榮的任務,就是製作聖誕樹頂上的那顆大星星。不過當你拿到製作的三角形銀紙的時候,你發現銀紙上面有許多洞。原來你的妹妹已經在銀紙上剪下了一些小的三角形來製作小星星。你唯有尋找乙個演算法,告訴你在每張銀紙上還能切出來的最大的三角形面積。
給定乙個三角形,裡面有黑色和白色的區域,你必須找到白色的區域中最大三角形的面積,如圖所示。
【輸入格式】
輸入檔案包含若干個三角形描述。每個三角形描述的第1行是乙個整數n(1≤n≤100),表示該三角形的高。接下來的n行每行包含由空格、「#」和「-」組成的字串表示三角形的狀況。其中「#」代表黑色的區域,「-」代表白色的區域。空格是用來填充輸入的左邊,從而使得整個輸入構成乙個三角形的形狀。
對每個三角形,每行字元「#」和「-」的數目之和都是奇數,由2n-1遞減至1。
全部輸入以n=0結束
【輸出格式】
對輸入的每個三角形,輸出白色的區域中最大三角形面積。注意,最大三角形可以是頂角朝上的,如同第2個樣例輸入所示。
【輸入輸出樣例】
輸入輸出
標程方法是動規。。不知道是怎麼搞的。
其實就是列舉頂點,然後向上和向下,每次向左向右寬度增加1,都不能遇到障礙。
為了減小複雜度,弄了乙個預處理,就是每個點向左向右最多能達到多少。
犯了點錯誤,所以只得了30分。
問題在於,一開始我列舉頂點的時候,是1到最右邊,其實這樣不對,稍微畫圖就能發現。
三角形和倒三角形的頂點是不同的,乙個是奇數,乙個是偶數。
還有判斷無障礙寫錯了。
其實題很簡單。
#include char map[510][510];
long l[510][510];
long r[510][510];
#define max(a,b) ((a)>(b)?(a):(b))
int main()
} long maxh = 1;
for (long i=1;i=j+i+(k-i))
maxh = max(maxh,k-i+1);
else
break;}}
}} for (long i=1;i0;k--)}}
} printf("%ld\n",maxh*maxh);
} return 0;
}
求三角形最大面積
include define maxnum 10 char maxnum maxnum bool f maxnum maxnum maxnum int n void input file fp int i fp fopen input.txt r fscanf fp,d n for i 1 i n ...
JSP求三角形面積
2 實驗1 60分鐘 2.1 實驗目的 計算三角形的面積 2.2 實驗任務 1 定義乙個可以輸入三角形三條邊的 html頁面 2 定義乙個可以計算三角形面積的 jsp頁面 3 顯示三角形的面積 2.3 實驗要求 1 三角形的邊必須為數字,如果三條邊沒有賦初值,則三條邊賦初值為零 2 判斷三角形的三條...
三角形面積
算是自己第一道正式寫的演算法幾何吧,先從簡單的開始吧,加油!描述 給你三個點,表示乙個三角形的三個頂點,現你的任務是求出該三角形的面積 輸入 每行是一組測試資料,有6個整數x1,y1,x2,y2,x3,y3分別表示三個點的橫縱座標。座標值都在0到10000之間 輸入0 0 0 0 0 0表示輸入結束...