D Ladder(區間 遞推)

2021-10-05 17:43:09 字數 953 閱讀 2546

題意:給定n

nn個數組成的陣列a

ia_i

ai​,若干次區間詢問該區間是否為峰形區間。

峰形區間即:al≤

al+1

≤al+

2⋯≤a

k≥ak

+1≥a

k+2⋯

≥a

ra_l\le a_\le a_\dots\le a_k\ge a_\ge a_\dots\ge a_r

al​≤al

+1​≤

al+2

​⋯≤a

k​≥a

k+1​

≥ak+

2​⋯≥

ar​非遞減區間和非遞增區間也是峰形區間。

思路:對每個a

ia_i

ai​統計a

ia_i

ai​向左遞增的最大長度和向右遞增最大長度。

然後每次詢問判斷一下a

la_l

al​向右遞增的最大長度與a

ra_r

ar​向左遞增的最大長度之和是否大於等於區間長度.

這樣用兩個陣列就能維護所有區間了。

時間複雜度:o(n

)o(n)

o(n)

ac**:

#include

#include

#include

#include

#include

using

namespace std;

const

int n=

1e5+5;

typedef

long

long ll;

int a[n]

,l[n]

,r[n]

;int

main()

return0;

}

區間 區間合併

用x,y表示乙個整數範圍區間,現在輸入一組這樣的範圍區間 用空格隔開 請輸出這些區間的合併。輸入描述 一行整數,多個區間用空格隔開。區間的逗號是英文本元。輸出描述 合併後的區間,用過空格隔開,行末無空格示例1 1,3 2,51,5示例2 1,3 2,5 8,10 11,151,5 8,10 11,1...

區間貪心問題小結(區間選點,區間覆蓋,區間選取)

貪心演算法 思想 什麼是貪心演算法,什麼算得上是貪心 貪心演算法 又稱貪婪演算法 是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,只做出在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性...

區間問題 區間選點 區間問題 貪心

玄學的貪心問題,一般全憑直覺。貪心問題沒有固定討論,沒有模板,見多了就好了,證明想法的正確性是很困難的,大多採用反證法。905.區間選點 貪心思路 證明 時間複雜度 o n logn o nlogn o nlog n include include using namespace std const...