題目描述
wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了……
機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。
但是 wind 也想知道答案,你能幫助他嗎?
輸入格式
第一行為 n,k,意義如題目描述。
第二行共 n 個數,為數字序列,所有數字均在pascal
的longint
範圍內,即所有數均為整數,且在 [−2^31,2^31−1] 範圍內。
輸出格式
共 n−k+1 行,第 i 行為第 i 至第 i+k−1這 k個數中的最大和最小值。
樣例樣例輸入
5 3
1 2 3 4 5
樣例輸出
3 1
4 25 3
資料範圍與提示
對於全部資料,1≤k≤n≤10^5
在普通rmq的基礎上再加乙個存最小值的陣列就行了
(其實跟模板題沒什麼區別,但是為了水部落格,我還是決定再發一遍)
#include#include#include#includeusing namespace std;
const int n = 1e6 + 3;
int logg[n],f[n][20],s[n][20],a[n];
int n,k;
int main()
logg[0] = -1;
for(int i = 1;i <= n;i++)
for(int i = 1;i <= 21;i++)
}int q = logg[k];
for(int i = 1;i <= n - k + 1;i++)
return 0;
}
最敏捷的機械人
題目描述 wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。但是 ...
1542 例 2 最敏捷的機械人
題目描述 wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。但是 ...
最敏捷的機械人(線段樹維護區間最值)
題面 wind設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共n個數,它們比賽看誰能最先把每連續k個數中最大和最小值寫下來,當然,這些機械人運算速度都很,它們比賽的是誰寫得快。但是wind也想知道答...