1174區間中最大的數
基準時間限制:1秒 空間限制:131072kb 分值: 0難度:基礎題
收藏關注
取消關注
給出乙個有n個數的序列,編號0 - n - 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。
例如: 1 7 6 3 1。i = 1, j = 3,對應的數為7 6 3,最大的數為7。(該問題也被稱為rmq問題)
input
第1行:1個數n,表示序列的長度。(2 <= n <= 10000)output第2 - n + 1行:每行1個數,對應序列中的元素。(0 <= s[i] <= 10^9)
第n + 2行:1個數q,表示查詢的數量。(2 <= q <= 10000)
第n + 3 - n + q + 2行:每行2個數,對應查詢的起始編號i和結束編號j。(0 <= i <= j <= n - 1)
共q行,對應每乙個查詢區間的最大值。input示例
517output示例6313
0 11 3
3 4
773rmq問題的st解法
1 #include 2 #include 3view codeusing
namespace
std;
4int dp[10005][40];5
int a[10005];6
intn;
7void
init_rmq()817
}18}19
int query(int l,int
r)20
27int
main()
2841
return0;
42 }
設dp[i][j]表示以i為起點,區間長度為2^j的範圍最大值。
初始化dp[i][0]=a[i];然後列舉區間範圍j更新dp[i][j].
對於查詢操作,【l,r】最大值=max(dp[l][k],dp[r-(1<
51Nod 1174 區間中最大的數
給出乙個有n個數的序列,編號0 n 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。例如 1 7 6 3 1。i 1,j 3,對應的數為7 6 3,最大的數為7。該問題也被稱為rmq問題 第1行 1個數n,表示序列的長度。2 n 10000 第2 n 1行 每行1個數,對應序列中的元素。...
51nod 1174 區間中最大的數
1174 區間中最大的數 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏關注給出乙個有n個數的序列,編號0 n 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。例如 1 7 6 3 1。i 1,j 3,對應的數為7 6 3,最大的數為7。該問題也被稱為r...
51nod 1174 區間中最大的數
1174 區間中最大的數 基準時間限制 1 秒 空間限制 131072 kb 給出乙個有n個數的序列,編號0 n 1。進行q次查詢,查詢編號i至j的所有數中,最大的數是多少。例如 1 7 6 3 1。i 1,j 3,對應的數為7 6 3,最大的數為7。該問題也被稱為rmq問題 input 第1行 1...