【題目描述】
wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了……
機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。
但是 wind 也想知道答案,你能幫助他嗎?
【輸入】
第一行為 n,k,意義如題目描述。
第二行共 n 個數,為數字序列,所有數字均在 pascal 的 longint 範圍內,即所有數均為整數,且在 [−231,231−1]範圍內。
【輸出】
共 n−k+1 行,第 i 行為第 i 至第 i+k−1 這 k 個數中的最大和最小值。
對於全部資料,1≤k≤n≤105 。
【**】
無st表模板題,比昨天寫的快多了,理解加深了一點,但還是有些地方卡殼,這題就比昨天多了乙個記錄min的陣列,還有理解位運算子和st表的儲存過程時理解st表的關鍵
#include
#include
#include
const
int n =
1e5+5;
using
namespace std;
int n,k,f[n][25
],f1[n][25
],a[n]
,log[n]
;//預處理
void
init()
for(
int j=1;
(1<<=n;j++)}
}int
ansmax
(int l,
int r)
intansmin
(int l,
int r)
intmain()
return0;
}
最敏捷的機械人
題目描述 wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。但是 ...
loj 10120 最敏捷的機械人
題目描述 wind 設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共 n 個數,它們比賽看誰能最先把每連續 k 個數中最大和最小值寫下來,當然,這些機械人運算速度都很快,它們比賽的是誰寫得快。但是 ...
最敏捷的機械人(線段樹維護區間最值)
題面 wind設計了很多機械人。但是它們都認為自己是最強的,於是,一場比賽開始了 機器人們都想知道誰是最敏捷的,於是它們進行了如下乙個比賽。首先,他們面前會有一排共n個數,它們比賽看誰能最先把每連續k個數中最大和最小值寫下來,當然,這些機械人運算速度都很,它們比賽的是誰寫得快。但是wind也想知道答...