参考:http://blog.csdn.net/w_yqts/article/details/76037315 把相同符号的连续数字加起来,合并后ans先贪心的加上所有正数,如果正数个数sum>m,设计二元组(i,a[i])表示合并后序列i位置上值为a,记录前驱后继,塞进按绝对值排序的小根堆里.每次拿出来一个,减去这个x的a的绝对值,然后合并左右前驱后继,再塞回去. 如果拿出来的是正数,那么减去相当于原来选了现在不选,如果是负数,减去相当于选. 然后a值要改成a[l]+a[r]+a[x],下次再…