時間限制: 10 sec
記憶體限制: 162 mb
有乙個a*b的整數組成的矩陣,現請你從中找出乙個n*n的正方形區域,使得該區域所有數中的最大值和最小值
的差最小。
第一行為3個整數,分別表示a,b,n的值第二行至第a+1行每行為b個非負整數,表示矩陣中相應位置上的數。每
行相鄰兩數之間用一空格分隔。
100%的資料2<=a,b<=1000,n<=a,n<=b,n<=100
僅乙個整數,為a*b矩陣中所有「n*n正方形區域中的最大整數和最小整數的差值」的最小值。
5 4 21 2 5 6
0 17 16 0
16 17 2 1
2 10 2 1
1 2 2 2
1
#include#include#include#include#include#include#define maxn 1007#define ll long long
using namespace std;
ll e,f,a[maxn],c[maxn],***[maxn],head3,tail3,mp1[maxn],mp2[maxn],b[maxn][maxn],w[maxn][maxn],head1,tail1,head2,tail2,n,k;
inline int read()
while(ch<='9'&&ch>='0')
return s*f;
}inline void push1(int i)
inline void push3(int i)
}//cout<=k)}}
cout<
HAOI 2007 理想的正方形
有乙個a b的整數組成的矩陣,現請你從中找出乙個n n的正方形區域,使得該區域所有數中的最大值和最小值的差最小。輸入格式 第一行為3個整數,分別表示a,b,n的值 第二行至第a 1行每行為b個非負整數,表示矩陣中相應位置上的數。每行相鄰兩數之間用一空格分隔。輸出格式 僅乙個整數,為a b矩陣中所有 ...
HAOI2007 理想的正方形
有乙個a b的整數組成的矩陣,現請你從中找出乙個n n的正方形區域,使得該區域所有數中的最大值和最小值的差最小.第一行為3個整數,分別表示a,b,n的值第二行至第a 1行每行為b個非負整數,表示矩陣中相應位置上的數.每行相鄰兩數之間用一空格分隔.100 的資料2 a,b 1000,n a,n b,n...
HAOI2007 理想的正方形
x與x所儲存的分別是1 n的長方形內的最大值,最小值。x i j 儲存第i行第jj n 1列的長方形中的最大值。同理,x i j 儲存第i行第jj n 1列的長方形中的最小值。這時再對這兩個陣列的每一列上的值進行維護,將x中每個區間的的最大值用y維護,將x中的每個區間的最小值用y維護。那麼y i j...