題目描述:有一串含有n個數的數列,有m個詢問,每個詢問有兩個數字x,y,求出x到y這段區間內的最大值。
輸入:
第一行為乙個n和m分別表示數字的個數和詢問的個數,第二行為n個數。接下來m行,每行都有兩個整數x,y。
1 <= x, y <= 1e5
輸出:
輸出共m行,每行輸出乙個數。
樣例輸入:
10 2
3 2 4 5 6 8 1 2 9 7
1 4
3 8
樣例輸出:
5
8
題目型別:rmq
思路:
這是一道rmq模板題,首先我們先進行rmq預處理,即先找到每個區域內的最大值,存入dp陣列中,然後根據查詢直接詢問dp陣列
#includeusing namespace std;
const int n=1e6+5;
int dp[n][25];
int a[n];
int n,m,x,y;
void rmq_build()//rmq預處理
return;
}int rmq_query(int l,int r)//查詢【l,r】範圍內的最大值
int main()
rmq_build();
for(int i=1;i<=m;i++)
}
數列區間最大值 線段樹
acwing 1270 time limit 2s memory limit 64mb problem description 輸入一串數字,給你 m 個詢問,每次詢問就給你兩個數字 x,y要求你說出 x 到 y 這段區間內的最大數。input output 輸出共 m 行,每行輸出乙個數。samp...
RMQ問題 1541 例 1 數列區間最大值
時間限制 1000 ms 記憶體限制 524288 kb 提交數 757 通過數 262 輸入一串數字,給你 m 個詢問,每次詢問就給你兩個數字 x,y,要求你說出 x 到 y 這段區間內的最大數。第一行兩個整數 n,m 表示數字的個數和要詢問的次數 接下來一行為 n 個數 接下來 m 行,每行都有...
數列區間最大值 RMQ問題(ST演算法模板)
輸入一串數字,給你 m個詢問,每次詢問就給你兩個數字 x,y,要求你說出 x 到 y 這段區間內的最大數。輸入格式 第一行兩個整數 n,m 表示數字的個數和要詢問的次數 接下來一行為 n 個數 接下來 m 行,每行都有兩個整數x,y 輸出格式 輸出共 m 行,每行輸出乙個數。樣例樣例輸入 10 2 ...