訓練賽 浣熊

2022-04-14 18:44:58 字數 1062 閱讀 4187

從前有乙隻可愛的小浣熊居住在美麗的森林裡。他聽說小鸚鵡要旅行到另乙隻鸚鵡家做客,也想邀請朋友們來自己家。為此,小浣熊想建一棟新房子。他找到了一塊比較大的平地,不過這塊地上還是有一些地方不能建屋。不妨把這塊空地看作是由n行m列等大小的正方形格仔組成。現在,小熊已經把不能建房子的地方都標記了出來,他想找出一塊長方形的空地來建造,同時,他希望這塊地的面積最大。你能幫助他麼?

輸入第一行依次包含兩個正整數n和m。

下面n行每行有m個空格隔開的數,分別描述了整塊地的每乙個方格的情況。每個數非0即1,若為1表示該格可以被選擇,0表示該格有障礙而不能用。

輸出僅一行乙個整數,為最大能夠找到的長方形的面積。

5 5

1 1 1 1 1

1 0 0 1 1

0 1 1 1 1

0 1 1 0 1

1 1 1 1 1

6

對於50%的資料,有1 ≤ n,m ≤ 10

對於100%的資料,有1 ≤ n,m ≤ 50

思路:一開始沒做出來= =!後來看了隊裡另外乙個人的**才茅塞頓開,還有這種操作!

首先預處理矩形(處理方式見**)

處理完畢後,樣例應為:

2 0 1 3 5

1 0 0 2 4

0 3 3 1 3

0 2 2 0 2

1 1 1 1 1

後列舉每個b[i][j],再列舉k,j<=k<=m,去b[i][j]與b[i][k]中最小值,為長,寬為k-j+1,相乘則是矩形面積。

#include using namespace std;

int main()

; int b[55][55]=;

cin>>n>>m;

int i,j;

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

}for(j=1;j<=m;j++)

for(i=n-1;i>0;i--)

else}}

int ans=0;

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

cout

}

訓練 9 13 訓練賽

a.hdu 6230 乙個合法的子串 s 3n 2 滿足條件即1 2n 1 為以n為回文中心的回文串,n 3n 2為以2n 1為中心的回文串。故我們可以通過尋找回文中心對,來判斷相應合法子串的個數。利用manacher求出每個位置的最長回文半徑,則若i,j滿足條件 i j 則應有 p i geqsl...

訓練賽 詠歎

安師大附中訓練題目 給定乙個1到n的排列a,對其進行氣泡排序 counter 0 while a不是公升序的 counter counter 1 for i 1 to n 1 if a i a i 1 then swap a i a i 1 endifend forend while那麼經過幾輪排序...

訓練賽補題

codeforces 1041b 思考 1 求最大公約數的時候除法比減法要快,以後能用除法去處理大數就不要用劍法去處理大數 codeforces 1041c 題意 其實就是給定了n個數,問間隔最少d,那麼這樣最少是幾組,並且哪個是哪一組的 思路 就是直接進行比較,先進行按照數值進行從小到大排序,如果...