bzoj1057 ZJOI2007 棋盤製作

2021-09-30 14:25:36 字數 1979 閱讀 1801

1057: [zjoi2007]棋盤製作

time limit: 20 sec memory limit: 162 mb

submit: 2862 solved: 1440

[submit][status][discuss]

description

西洋棋是世界上最古老的博弈遊戲之一,和中國的圍棋、象棋以及日本的將棋同享盛名。據說西洋棋起源

於易經的思想,棋盤是乙個8*8大小的黑白相間的方陣,對應八八六十四卦,黑白對應陰陽。而我們的主人公小q,

正是西洋棋的狂熱愛好者。作為乙個頂尖高手,他已不滿足於普通的棋盤與規則,於是他跟他的好朋友小w決定

將棋盤擴大以適應他們的新規則。小q找到了一張由n*m個正方形的格仔組成的矩形紙片,每個格仔被塗有黑白兩種

顏色之一。小q想在這種紙中裁減一部分作為新棋盤,當然,他希望這個棋盤盡可能的大。不過小q還沒有決定是找

乙個正方形的棋盤還是乙個矩形的棋盤(當然,不管哪種,棋盤必須都黑白相間,即相鄰的格仔不同色),所以他

希望可以找到最大的正方形棋盤面積和最大的矩形棋盤面積,從而決定哪個更好一些。於是小q找到了即將參加全

國資訊學競賽的你,你能幫助他麼?

input

第一行包含兩個整數n和m,分別表示矩形紙片的長和寬。接下來的n行包含乙個n * m的01矩陣,表示這張矩形

紙片的顏色(0表示白色,1表示黑色)。

output

包含兩行,每行包含乙個整數。第一行為可以找到的最大正方形棋盤的面積,第二行為可以找到的最大矩形棋

盤的面積(注意正方形和矩形是可以相交或者包含的)。

sample input

3 31 0 1

0 1 0

1 0 0

sample output

6 hint

n, m ≤ 2000

source

發現要黑白相間,顯然把其中一種座標值翻轉一下,變成求乙個全0或者全1的矩陣

記錄b[i][j]表示i,j這個位置可以向左拓展的最長長度。則對於某一列j來說,該列的某行i可以向上下拓展到b[x][j]小於b[i][j]的x行之前。那麼對於每一列,我們都用乙個單調遞增的單調棧做一遍,則對i行,i到棧頂元素之間全部比他大。因此可以迅速知道可以擴充套件到**。

棧中儲存2個東西,乙個是可以向上拓展的最長高度,乙個是寬度,矩形和正方形同時做即可。

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int manx = 2500;

int n, m, i, j, cnt, now, ans1, ans2;

int a[manx][manx], b[manx][manx];

struct cc h[manx];

inline

int read()

while(ch>='0'&&ch<='9')

return x*f;

}inline

int sqr(int x)

inline

void to(int top, int long_now) ++cnt;

h[cnt].long = long_now;

h[cnt].top = now;

}inline

void work()

}int main()

work();

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

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

a[i][j] ^= 1;

work();

cout

}

BZOJ1057 ZJOI2007 棋盤製作

西洋棋是世界上最古老的博弈遊戲之一,和中國的圍棋 象棋以及日本的將棋同享盛名。據說西洋棋起源 於易經的思想,棋盤是乙個8 8大小的黑白相間的方陣,對應八八六十四卦,黑白對應陰陽。而我們的主人公小q,正是西洋棋的狂熱愛好者。作為乙個頂尖高手,他已不滿足於普通的棋盤與規則,於是他跟他的好朋友小w決定 將...

bzoj1057 ZJOI2007 棋盤製作

傳送門 我們可以先用o nm 時間求出向左向右擴充套件的最大距離 然後o nm 列舉下端點位置 在矩形下面的邊上 計算出當高最高時的寬度,相乘後取max 正方形同理,只要取高度和寬度的min就行了。uses math var hei,a,x,y,le,ri array 0.2005,0.2005 o...

BZOJ1057 ZJOI2007 棋盤製作

西洋棋是世界上最古老的博弈遊戲之一,和中國的圍棋 象棋以及日本的將棋同享盛名。據說西洋棋起源 於易經的思想,棋盤是乙個8 8大小的黑白相間的方陣,對應八八六十四卦,黑白對應陰陽。而我們的主人公小q,正是西洋棋的狂熱愛好者。作為乙個頂尖高手,他已不滿足於普通的棋盤與規則,於是他跟他的好朋友小w決定 將...