TIOJ-1441
萬里長城
https://tioj.ck.tp.edu.tw/problems/1441
Description
給定一個序列,找出最長的「長城」子序列
一個序列$< a_1,a_2,\dots,a_n >$必須符合下列幾點才算是「長城」
- n是奇數
- 若$i$是偶數,則$a_i$必須小於相鄰的項
- 若$i$是奇數,則$a_i$必須大於相鄰的項
Solution
貪心法
維護一個tail表示前$i$項滿足點2. 3.的最佳解,其結尾是多少
假設下一個項h必須比tail大
若h比tail大,那就直接接上去(並更新tail),否則就把tail替換成h
反之亦然
證明大概可以用數歸吧(?)我也不太會說明QQ
AC code
|
|