题目链接:hdu 2888 Check Corners
题目大意:给定一个矩阵,每次查询矩阵中的最大值,并且判断该最大值是否在所查询的角落上。
解题思路:一开始用线段树,一维RMQ都超时了,然后换成了二维的RMQ,结果MLE,dp数组换成9?9就过了。
#include
#include
#include
using namespace std; const int maxn = 305; int N, M, Q, g[maxn][maxn], dp[maxn][maxn][9][9]; void rmq_init(int n, int m) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) dp[i][j][0][0] = g[i][j]; } for (int x = 0; (1<