1. 程式人生 > >[CTSC2017]最長上升自序列(偽題解)(樹狀數組+DP套DP+最小費用最大流+Johnson最短路+Yang_Tableau)

[CTSC2017]最長上升自序列(偽題解)(樹狀數組+DP套DP+最小費用最大流+Johnson最短路+Yang_Tableau)

AS n) rdquo tro size 長度 -s pan family

部分分做法很多,但每想出來一個也就多5~10分。正解還不會,下面是各種部分分做法:

Subtask 1:k=1

LCS長度最長為1,也就是說不存在j>i和a[j]>a[i]同時成立。顯然就是一個LDS,樹狀數組直接求即可。

Subtask 2:k=2

最多兩個,也就是可以由兩個LCS拼起來,f[i][j]表示第一個LCS以i結尾,第二個以j結尾的方案數,轉移顯然。

Subtask 3:k=2

樹狀數組優化DP,復雜度由$O(n^3)$降為$O(n^2 \log n)$

Subtask 4,5:B<=8

DP套DP:https://www.cnblogs.com/clnchanpin/p/7357564.html

一般與“子序列”同時出現,如最長上升自序列,最長公共自序列等。

Subtask 6,7:

一個顯然的定理:一個序列的LCS最大為k意味著這個序列最少可以由k個不相交的LDS組成。

[CTSC2017]最長上升自序列(偽題解)(樹狀數組+DP套DP+最小費用最大流+Johnson最短路+Yang_Tableau)