2020-2021:teams:farmer_john:jjleo:codeforces_round_650_div._3_virtual_participation
rank:394
ABC
D
E
F
题解:打了一万年fhqtreap发现想错了。首先离散化。可以发现对于每个元素最多动一次,因此我们考虑最多可以让哪些元素不动。因为这些元素不动,相当于它们中间的其它元素最后都会被拿出去,这些元素最后会挨到一起,因此所以它们组成的子序列一定要单调不降,而且要形如$1,\ldots,1,2,\ldots2,\ldots$,而且如果$x$不在这个子序列的头和尾,那么必须有全部的$x$。因此我们设$f_{i,0/1/2}$分别表示以$i$结尾此时是子序列开头/中间/结尾时最长的子序列,转移时符合上述所说即可。最后答案为$n-最长子序列长度$。
2020-2021/teams/farmer_john/jjleo/codeforces_round_650_div._3_virtual_participation.txt · 最后更改: 2020/06/25 14:44 由 jjleo