深渊水妖 模拟,贪心 牛客白月赛44
鏈接:https://ac.nowcoder.com/acm/contest/11221/A
來源:牛客網
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
潛蛟舞,蜉蝣動,深淵水妖漣漪現。
你進行了 nn 次考試,第 ii 次考試的分數是 a_ia
i
?
。
你想知道你最大進步的幅度是多少,定義最大進步的幅度為:
選定一段 極長 的區間 [l,r][l,r],滿足 a_l\le a_{l+1}\le\cdots\le a_ra
l
?
≤a
l+1
?
≤?≤a
r
?
。
滿足條件一的情況下,使得 a_r-a_la
r
?
?a
l
?
的值最大。
如果你有多段最大進步,你需要輸出所有的最大進步段,每一段用兩個數 l,rl,r 表示,按照區間的左端點升序輸出。
一句話題意:找到所有極長的不嚴格上升段,并找出它們當中右端點權值 - 左端點權值最大的那些個段,輸出端點坐標。
輸入描述:
全文第一行輸入一個正整數 T(1\le T\le10^5)T(1≤T≤10
5
),表示數據組數。
每組數據第一行輸入一個正整數 n(2\le n\le10^5)n(2≤n≤10
5
)。
第二行輸入 nn 個正整數,第 ii 個正整數是 a_i(1\le a_i\le n)a
i
?
(1≤a
i
?
≤n)。
數據保證 \sum n\le3\times10^6∑n≤3×10
6
,保證至少存在一個 i\in[2,n]i∈[2,n] 滿足 a_i\ge a_{i-1}a
i
?
≥a
i?1
?
。
輸出描述:
對每組詢問輸出一行,表示你所得到的所有答案。
示例1
輸入
復制
1
7
1 3 5 2 4 6 3
輸出
復制
1 3 4 6
備注:
區間 [1,3][1,3] 是 1,3,51,3,5,滿足 1\le3\le51≤3≤5 并且 5-1=45?1=4 差值最大。
區間 [4,6][4,6] 同理,6-2=46?2=4 同樣為最大的差值。
思路 :
- 先找出所有的 極長 不嚴格上升 區間
- 然后在這些區間中選出 右端點權值-左端點權值最大 的那些區間
總結
以上是生活随笔為你收集整理的深渊水妖 模拟,贪心 牛客白月赛44的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Division 贪心,模拟 牛客练习赛
- 下一篇: 顽皮恶魔 牛客白月赛44