題意:給定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...