#41335: 輕鬆愜意的思路


seancai78@gmail.com (風月春秋)

學校 : 臺北市立成功高級中學
編號 : 176406
來源 : [140.113.124.212]
最後登入時間 :
2024-10-07 23:20:19
d166. 反轉表 -- w11123 | From: [118.166.20.99] | 發表日期 : 2024-07-18 00:16

先講解一下題意

輸入多行測資,直到為0時停止

eg:010
a1 = 0 ; a2 = 1 ; a3 = 0
a"1"左邊沒有比“1"大的數字
a"2"左邊有一個比“2"大的數字

輸出:a1  a3  a2

解題思路:
先從最後一個往回推理(最後一個必為0)
建一個vector,先把a3放入
現在放倒數第二個(a2)
vector中所有數字都比當前要放入的數字大
因此,a2的值(比a2大的數有幾個)就是a2在vector中所處的位置
原:a3
後:a3 a2
由這個方法可有快速的逆推整個答案的樣子
用vector實作就是insert(begin()+a[i],i)
eg:a1 = 2 ;a2 = 2 ; a3 = 0 ; a4 = 0
1. a4
2. a3 a4
3. a3 a4 a2
4. a3 a4 a1 a2 =>ans

 
ZeroJudge Forum