題目鏈結
有乙個a乘b的整數組成的矩陣,現請你從中找出乙個nn的正方形區域,使得該區域所有數中的最大值和最小值的差最小。
輸入輸出格式
輸入格式:
第一行為3個整數,分別表示a,b,n的值
第二行至第a+1行每行為b個非負整數,表示矩陣中相應位置上的數。每行相鄰兩數之間用一空格分隔。
輸出格式:
僅乙個整數,為ab矩陣中所有「n*n正方形區域中的最大整數和最小整數的差值」的最小值。
#include
#include
#include
#include
using
namespace std;
int n,m,k,mp[
1005][
1005];
int dp1[
1005][
1005][
11],dp2[
1005][
1005][
11];int ans=
0x3f3f3f3f
;voidst(
)}intrmq
(int x,
int y,
int xx,
int yy)
intmain()
st();
for(
int i=
1;i+k-
1<=n;i++
)for
(int j=
1;j+k-
1<=m;j++
) ans=
min(ans,
rmq(i,j,i+k-
1,j+k-1)
);cout<}
P2216 HAOI2007 理想的正方形
有乙個a b的整數組成的矩陣,現請你從中找出乙個n n的正方形區域,使得該區域所有數中的最大值和最小值的差最小。輸入格式 第一行為3個整數,分別表示a,b,n的值 第二行至第a 1行每行為b個非負整數,表示矩陣中相應位置上的數。每行相鄰兩數之間用一空格分隔。輸出格式 僅乙個整數,為a b矩陣中所有 ...
P2216 HAOI2007 理想的正方形
有乙個 a b 的整數組成的矩陣,現請你從中找出乙個 n n 的正方形區域,使得該區域所有數中的最大值和最小值的差最小。輸入格式 第一行為三個整數,分別表示 a,b,n 的值 第二行至第 a 1 行每行為 b 個非負整數,表示矩陣中相應位置上的數。輸出格式 輸出僅乙個整數,為 a b 矩陣中所有 n...
P2216 HAOI2007 理想的正方形
p2216 haoi2007 理想的正方形 那來練手的板子題。去年普及組考慮單調佇列,感覺很慌。然後打算再複習一波。就找到了這個題。題目中 a,b 不大,可以容忍 o ab 的複雜度。而且子矩陣的寬度也是有限制的,最大最小也是可以分別分開計算的。所以可以先統計 n ast 1 大小的矩陣,然後縮成乙...