[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,正是西洋棋的狂熱愛好者。作...