题目

源地址:

http://poj.org/problem?id=2019

理解

暴力水过的= =,大牛说是RMQ的题目,要是POJ数据强的话,估计就超时了。

代码


#include <cstdio>
#include <cstdlib>

int field[300][300];
int N, B, K;
int X, Y;
int i, j;
int min, max, tmp;

int main(int argc, char const *argv[])
{
    scanf("%d%d%d", &N, &B, &K);
    for (i = 1; i <= N; i++)
    {
        for (j = 1; j <= N; j++)
        {
            scanf("%d", &field[i][j]);
        }
    }
    while (K --)
    {
        scanf("%d%d", &X, &Y);
        min = max = field[X][Y];
        for (i = X; i < X + B; i++)
        {
            for (j = Y; j < Y + B; j++)
            {
                if (min > field[i][j])
                {
                    min = field[i][j];
                }
                if (max < field[i][j])
                {
                    max = field[i][j];
                }
            }
        }
        printf("%d\n", max - min);
    }
    return 0;
}

更新日志

  • 2014年08月06日 已AC。