#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int a[303][303],maxn[9][9][301][301],n,m;
void initRmq()
{
int i,j,x,y;
for(i=0;i<n;i++) for(j=0;j<m;j++) maxn[0][0][i][j]=a[i][j];
for(i=0;(1<<i)<n;i++) for(j=0;(1<<j)<m;j++) for(x=0;x+(1<<i)<=n;x++) for(y=0;y+(1<<j)<=m;y++) if(i || j)
{
if(i) maxn[i][j][x][y]=max(maxn[i-1][j][x][y],maxn[i-1][j][x+(1<<(i-1))][y]);
......
阅读全文