ZJOI2007 棋盤製作 動規 懸線法

2022-05-16 02:02:59 字數 805 閱讀 7854

[zjoi2007]棋盤製作

懸線法h[i,j]為點(i,j)對應的懸線的長度

l[i,j]為點(i,j)對應的懸線向左最多能夠移動到的位置

r[i,j]為點(i,j)對應的懸線向右最多能夠移動到的位置

預處理:對於第i行 若(i,j)和(i,j-1)不同色則l[i,j]=l[i,j-1] r[i,j-1]=r[i,j]

若點(i,j)和點(i-1,j)不同色 則l[i,j]=max(l[i,j],l[i-1,j]]),r[i,j]=min(r[i,j],r[i-1,j])

#includeusing namespace std;

#define ll long long

#define rg register

#define max(x,y) ((x)>(y)?(x):(y))

#define min(x,y) ((x)>(y)?(y):(x))

const int n=2000+5,m=2e5+5,inf=0x3f3f3f3f,p=19650827;

int n,m,ans1,ans2,mp[n][n],l[n][n],r[n][n],h[n][n];

template void rd(t &x)

int main()

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

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

printf("%d\n%d\n",ans1,ans2);

return 0;

}

ZJOI2007 棋盤製作 懸線法

在乙個 n times m 的 0 1 矩陣中,求面積最大的相鄰位置數字不同的矩形和正方形。乍一看,也許暴力可以解決問題,可以暴力的列舉所取圖形的長和寬,然後再暴力的列舉。但是這樣的時間複雜度高達 o n 2 m 2 肯定行不通,而且很難寫。這時候,我們引入 懸線法 對於每個位置,我們預處理出此節點...

ZJOI2007 棋盤製作

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

ZJOI2007 棋盤製作

十二年前的zjoi我現在還切不過我是不是可以退役了 傳送門 西洋棋是世界上最古老的博弈遊戲之一,和中國的圍棋 象棋以及日本的將棋同享盛名。據說西洋棋起源於易經的思想,棋盤是乙個8 times 88 8大小的黑白相間的方陣,對應八八六十四卦,黑白對應陰陽。而我們的主人公小q,正是西洋棋的狂熱愛好者。作...