這裡是題幹:
這是什麼優化都沒有的。。。六次方,爽的一批~~~
#include
using
namespace
std;
int n,m,a[2100][2100],f[100][100][100][100];
bool judge(int i,int j,int x,int y)
if(((k-i)%2==0&&(l-j)%2==1)||((k-i)%2==1&&(l-j)%2==0))}}
return
true;
}void prepare()}}
}}
}int main()
}prepare();
int ans1=0,ans2=0;
for(int i=1;i<=n;++i)}}
}cout
0;}
我們可以用乙個s[x][y]表示從第(x,y)這個位置能往上走,多少個位置,這樣時間可以降到5次方,程式如下:
#include
using
namespace
std;
int n,m,a[2100][2100],f[100][100][100][100],s[100][100];
void prechuli()
}}bool judge(int i,int j,int x,int y)
return
true;
}void prepare()}}
}}
}int main()
}prechuli();
prepare();
int ans1=0,ans2=0;
for(int i=1;i<=n;++i)}}
}cout
0;}
和s[x][y]的思路相同,我們可以s1[x][y]表示橫著的最大值,這裡我們要介紹乙個快速尋找乙個陣列的最小值的方法:
f[i][j]表示從a[i]開始到二的j次方結束
降到四次方
程式實現如下:
#include
#include
using
namespace
std;
int n,m,a[2100][2100],s[2100][2100],s1[2100][2100],f[2100][2100][12],p[2100];
int ans1=0;
void prechuli()
}for(int i=1;i<=n;++i)
s1[i][1]=1;
for(int j=2;j<=m;++j)
}for(int i=1;i<=n;++i)}}
p[1]=0;
for(int i=2;i<=m;++i)
p[i]=p[i/2]+1;
}bool judge(int i,int j,int x,int y)
bool check(int mid)
}return
false;
}int erfen(int l,int r)
return r;
}void prepare()}}
}}
}int main()
} prechuli();
prepare();
int ans2=erfen(1,min(n,m));
cout
0;}
摘自洛谷題解~~~
求最大矩形:(借鑑了p4147題解中xg_zepto的思路)
建立 l[i][j],r[i][j] 儲存座標 (i,j) 左右最近的障礙位置
建立 l[i][j],r[i][j] 儲存座標 (i,j) 在矩形內左右最遠可以取到的位置
建立 h[i][j] 儲存座標 (i,j) 所在矩形的高度
座標 (i,j) 所在矩形面積為 h[i][j]*(r[i][j]-l[i][j]-1)
#include
#include
using namespace std;
int n,m,a[2100][2100],s[2100][2100];
int ans1=0,ans2=0,squ[2100][2100],l[2100][2100],r[2100][2100];
void prechuli()}}
void yuchuli()
}for(int i=1;i<=n;++i)}}
void prepare()}}
int main()
} prechuli();
yuchuli();
prepare();
cout}
洛谷P1169 棋盤製作
懸線法 好像 是可以解決給定矩陣中滿足條件的最大子矩陣的樣子 先就提論題 設 f i j 為從 i,j 點擴充套件最多能達到的最左端的點 color 設l i j 為從 i,j 點擴充套件能達到的最右端的點 color 設up i j 為從 i,j 點能擴充套件到的上界 然後就是 color 從左往...
洛谷 P1169 棋盤製作(懸線法DP)
題目大意 有乙個0,1矩陣。求其中的0,1交錯的最大子正方形矩陣和長方形矩陣的面積。解題思路 求這種最大子矩陣的題目很可能是懸線法。這個矩陣某個格仔 i,j 向左可能延伸到多遠,向右可能延伸到多遠,向上可能延伸到多遠,然後在確定縱向可以向下延伸時候利用轉移公式 up i j up i 1 j 1 l...
洛谷 P1169 題解
請你在乙個黑白矩陣中選出乙個長方形 含正方形 和正方形的子矩陣,使得所有相鄰的點顏色不一樣。矩陣大小 兩條邊都 2000 2000 2 000輸入 3 31 0 1 0 1 0 1 0 0輸出4 6解釋給定矩陣 正方形 長方形 我的控制台是萌萌噠 ffc0cb粉色 乙個小技巧 如果您的控制台是像我的...