bzoj1057 ZJOI2007 棋盤製作

2022-09-18 10:42:17 字數 933 閱讀 1517

dp。方型棋盤不用說,矩形棋盤每個點先維護先上能達到的最大距離v。然後dp找出以自己的v最小時向左向右能達到最大的距離l,r。

因為最大矩形棋盤的寬度肯定等於某個點的v,我們又求出了每個v對應的最長距離(r-l+1),所以正確性得以保證。

還有乙個小技巧,把橫縱座標和為奇數的點異或。就可以把原問題轉化為求最大的01矩陣了。

#include#include

#include

using

namespace

std;

const

int maxn = 2000 + 10

;int

a[maxn][maxn],f[maxn][maxn],v[maxn][maxn],l[maxn][maxn],r[maxn][maxn];

int n,m,res1=0,res2=0

;int

main()

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

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

printf(

"%d\n

",res1*res1);

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

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

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

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

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

for(int j=m;j>=1;j--)

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

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

res2=max(res2,v[i][j]*(r[i][j]-l[i][j]+1

)); printf(

"%d\n

",res2);

return0;

}

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決定 將...