一看这题——难道不是 n^2 dp? 怎么可能不是n^2dp?
n=200000 怎么搞、、、
总之要想尽一切方法搞出来。。
想到了网络流,但这个m是至多而不是定值。
想到了最短路,但没法确定m
于是就只有n^2的了
n^2做法:f[第几个数][是否选择这个数][已经选过的数的个数]
这样的话:f[i][1][j]=f[i-1][0][j-1]; f[i][0][j]=max(f[i-1][1][j],f[i-1][0][j] )
最后再特判一下
似乎没什么问题
按TA的数据,应该能得85分、、
TA的题解中似乎有数规?什么东西、
::::源自TA blog:
、、、
TA:当面对题目不知所措时,发掘题目中的一些性质往往是解题的黄金之匙:诸如可逆性、对称性、等效性等等,尤其是一些奇怪的性质,绝对是破题的关键;而思考的方向也往往围绕着最值、特殊点等等进行,盲目探索只会消磨时间。
orz %orz%orz%orz%
双向链表是什么、、
其实也想过贪心,但对选与不选的等效性没有太过深入分析(因为有反例)、
好了,知道它怎么做的了、、
因为取一个,相邻的不能取,所以我们可以把目光集中在三个连续的数上:
我们利用不选最大的就选它两边的推论,先选最大,在把选两边作为一个修正,再取这两边就完全相当于取一个新的数,这样取到m个为止、、、
真是、、这方法把性质用的太好了、、、、
===================================2017.8.21=======================================
当一次操作过后,还有可能因为新操作而会被撤销时,我们可以把新操作和撤销合到一起考虑
尤其是这种取值问题,实际上是利用了等效性,虽然没有实际上撤销,但贡献的数值一样,就可以认为是等价的
所以我们就把一些限制具体化到对答案的贡献上了,取值时不会对正确答案造成影响
把限制化为具体的数值