5788
題目背景
模板題,無背景。
2019.12.12 更新資料,放寬時限,現在不再卡常了。
題目描述
給出項數為 nn 的整數數列 a_a
1…n
。定義函式 f(i)f(i) 代表數列中第 ii 個元素之後第乙個大於 ai
的元素的下標,即 f(i)=\min_ f(i)=miniai
。若不存在,則 f(i)=0f(i)=0。
試求出 f(1\dots n)f(1…n)。
輸入格式
第一行乙個正整數 nn。
第二行 nn 個正整數 a_a
1…n
。輸出格式
一行 nn 個整數 f(1\dots n)f(1…n) 的值。
輸入輸出樣例
輸入 #1複製
51 4 2 3 5
輸出 #1複製
2 5 4 5 0
#include
#include
#include
using
namespace std;
const
int maxn =
3e6+5;
int a[maxn]
, res[maxn]
;int s[maxn]
;int
main()
int top =0;
for(
int i = n; i >=
1; i--
)for
(int i =
1; i <= n; i++
)return0;
}
P5788 模板 單調棧
題目背景 模板題,無背景。2019.12.12 更新資料,放寬時限,現在不再卡常了。題目描述 給出項數為 nnn 的整數數列 a1 na a1 n 定義函式 f i f i f i 代表數列中第 iii 個元素之後第乙個大於 aia iai 的元素的下標,即 f i min iaif i min f...
單調棧 模板 單調棧模板
biu 單調棧主要用於求取左邊第乙個比它大,或者比它小的數。就比如站隊隨便排成一列,可以求到每個人後面第乙個比他高的人。同理可以推廣至右邊,比它矮均可。這就是單調遞增棧 遞減棧,從前至 棧,從後向前入棧的區別了。單調棧比較抽象,非常具有智慧型的想法,可應用的場景相當少,根據幾個經典題目體會它的用法會...
單調棧模板
顧名思義就是棧裡的元素是單調的。但是這個怎麼使用呢?怎麼就能是單調的呢?看下面的例題 題目給定乙個長度為n的整數數列,輸出每個數左邊第乙個比它小的數,如果不存在則輸出 1。輸入樣例 5 3 4 2 7 5 輸出樣例 1 3 1 2 2 題目意思很容易理解 那麼我們先來看暴力做法,每次取乙個數,與前面...