題目鏈接: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<