P2216 HAOI2007 理想的正方形

2022-04-29 23:30:09 字數 701 閱讀 5540

p2216 [haoi2007]理想的正方形

那來練手的板子題。

去年普及組考慮單調佇列,感覺很慌。

然後打算再複習一波。

就找到了這個題。

題目中\(a,b\)不大,可以容忍\(o(ab)\)的複雜度。

而且子矩陣的寬度也是有限制的,最大最小也是可以分別分開計算的。

所以可以先統計\(n \ast 1\)大小的矩陣,然後縮成乙個元素,表示這個大小的矩陣的值,儲存起來。再在縮完後的跑一邊\(1\ast n\)的情況,就統計出\(n\ast n\)的矩陣了。

然後使用單調佇列

#include#include#include#includeusing std::min;

const int maxn=1010;

int base[maxn][maxn];

int t[maxn][maxn][2];

struct node

void push(int val,int pos)

void pop(int pos)

int front()

};node max,min;

int main()

}int ans=0x7fffffff;

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

}printf("%d",ans);

}

P2216 HAOI2007 理想的正方形()

題目鏈結 有乙個a乘b的整數組成的矩陣,現請你從中找出乙個nn的正方形區域,使得該區域所有數中的最大值和最小值的差最小。輸入輸出格式 輸入格式 第一行為3個整數,分別表示a,b,n的值 第二行至第a 1行每行為b個非負整數,表示矩陣中相應位置上的數。每行相鄰兩數之間用一空格分隔。輸出格式 僅乙個整數...

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...