kmp演算法例題 登山

2021-09-18 03:46:31 字數 846 閱讀 3457

有一座延綿不斷、跌宕起伏的山,最低處海拔為0,最高處海拔不超過8848公尺,從這座山的一端走到另一端的過程中,每走1公尺海拔就公升高或降低1公尺。有q個登山隊計畫在這座山的不同區段登山,當他們攀到各自區段的最高峰時,就會插上隊旗。請你寫乙個程式找出他們插旗的高度。

輸入格式:

第1行,輸入乙個整數n(n≤10^6),表示山兩端的跨度。

接下來n+1行,每行乙個非負整數hi(i=0..n且0≤hi≤40000),表示該位置的海拔高度(單位:公尺),其中h0 = hn = 0。

接下來一行是乙個正整數q(q≤7000),表示登山隊的數量。

接下來q行,每行有兩個整數ai和bi,分別表示第i個登山隊攀爬的區段為[ai,bi],其中0≤ai≤bi≤n。

輸出格式:

輸出q行,每行為乙個整數,表示第i個登山隊插旗的高度

輸入樣例#1:

1001

2323

4321

050 10

2 43 7

7 98 8

輸出樣例#1:

434

32

#includeusing namespace std;

inline void read(int &xx)

}int n,m,a[1000010];

int f[1000010][30];

void pre()

for(int j=1;(1《體比較簡單,就是模板。注意長度是0-n

但資料很玄學,自己試一下14行是小於還是小於等於

KMP演算法例題 總結

kmp之前沒學,然後排位賽又有一道題考了這個知識點,這題ac了一列人,就差我乙個.kmp演算法 建立乙個next函式,從而使字串匹配的時間複雜度由o n n 變成o n m 舉個例子 ababcab 和 abbbcabdc 首先建立next陣列,next 0 1 ababcab 10012012就是...

Dijkstra演算法 例題

dijkstra演算法 從起點到終點求最短路 使用要求權值為正 1 求短路i 題目 點數 500 邊數 1e5 include include include using namespace std const int n 510,m 1e5 10 時間複雜度o n m int n,m 鄰接矩陣 i...

模擬演算法例題

一 火柴棒 題目描述 給你n根火柴棍,你可以拼出多少個形如 a b c 的等式?等式中的a b c是用火柴棍拼出的整數 若該數非零,則最高位不能是0 用火柴棍拼數字0 9的拼法如圖所示 注意 1 加號與等號各自需要兩根火柴棍 2 如果a b,則a b c與b a c視為不同的等式 a b c 0 3...