CF 1603 E A Perfect Problem
CF 1603 E A Perfect Problem
首先将\(a_i\)排序,这样可以转变成前缀上的问题。
我赛时只会一个\(O(n^6)\)的\(dp\),\(n=200\)自然是没敢写。
赛后在announcement上问了一下,结果Petr的\(O(n^6)\)直接就过了,感觉非常震撼。

原来就是换了一下dp顺序,从后往前dp,状态直接就少了几十万倍。
赛后想了一下,确实从后往前的限制会更强。因为越靠后的话\(a_1\times a_i\)的优势就会越来越小,很多序列都是在最后几个位置非法的。
题解的做法大概是观察了一些比较强的限制然后也是通过剪枝去掉一些无用状态:
- For i≤a1i≤a1, a1≤ai≤n+1a1≤ai≤n+1
- For i>a1i>a1, i+1≤ai≤n+1i+1≤ai≤n+1
- (a1−a1)+(a2−a1)+…+(an−a1)≤a1

浙公网安备 33010602011771号