演算法練習 護林員蓋房子

2021-09-18 06:51:51 字數 1087 閱讀 5499

百練2019信科研究生上機測試

總時間限制:

1000ms

記憶體限制:

65536kb

描述

在一片保護林中,護林員想要蓋一座房子來居住,但他不能砍伐任何樹木。

現在請你幫他計算:保護林中所能用來蓋房子的矩形空地的最大面積。

輸入

保護林用乙個二維矩陣來表示,長寬都不超過20(即<=20)。

第一行是兩個正整數m,n,表示矩陣有m行n列。

然後是m行,每行n個整數,用1代表樹木,用0表示空地。

輸出

乙個正整數,表示保護林中能用來蓋房子的最大矩形空地面積。

樣例輸入

4 5

0 1 0 1 1

0 1 0 0 1

0 0 0 0 0

0 1 1 0 1

樣例輸出

5
提示

子矩陣邊長可以為1,也就是說:

0 0 0 0 0

依然是乙個可以蓋房子的子矩陣。

思路:

先遍歷求出第 i 行第 j 列的格左相鄰的 0 的個數。

然後遍歷,對第 i 行第 j 列的格,設定length和width兩個屬性,與其上方的格對比,求出最大的面積

**:

#include #include #include #include using namespace std;

int map[21][21];

int main()

for(i = 1 ; i <= x ; i++)

}/* 列印測試

for(i = 1 ; i <= x ; i++)}}

}cout<<_max<}

護林員蓋房子 C

具體思路 建立二維陣列,把空地標為1,有樹標為0 統計a i j 的行中向前數最大長度,如0111,記為0123 設定width,length,遍歷a i j 行內有length a i j width 1 再遍歷列,length min,width 2020 11 2 include using ...

程式設計師演算法練習二

無重複字元的最長子串 給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而...

程式設計師演算法練習四

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。常...