先把题目转换成“分成两个集合每个集合如果前后两个数相同就加上颜色,求最大和”
设 fi,j 为考虑了前 i 个数,不在 i 集合内的最后一个数是 j 的最大分数。
有下面刷表方程:
如果 ai=ai+1,fi+1,j=max(fi+1,j,fi,j+ai),否则 fi+1,j=max(fi,j,fi+1,j)。
fi+1,a(i)=max(fi,a(i+1)+ai+1,maxj=1Vfi,j),V=maxi=1nai。
这个是65分的,然后考场想了一个100分的:
先把他滚起来,发现第一种其实就是先赋值,如果是 ai=ai+1 就是全体加。
第二个就是只修改 ai 位,单点修改。
然后线段树维护区间加区间最大?但是我没调出来
是假的还是对的?