uva-1471 - Defense Lines

出處 :  https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4217

解題策略

Greedy  O(n*log(n))

num[]為輸入的數列,

f[i],表示num[i]為終點,連續最長遞增序列長度,

s[i],表示num[i]為起點,連續最長遞增序列長度,

m[j],f[i]等於j,也就是以num[i]為終點的連續最長遞增序列長度等於j,m[j]儲存最小的陣列num值,此m[]陣列數值一定是遞增,m[1]開始儲存,且依序m[2]、m[3]...,都會有數值。

列舉num[i],找尋num[i]在m[]的lower_bound減去(m+1),就是左邊的最長長度,加上s[]就是最後長度,

紀錄此長度的最長。