您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈自动机 >

南昌网络赛 I Max answer单调栈

发布时间:2019-06-19 23:39 来源:未知 编辑:admin

  给你一个序列,对于每个连续子区间,有一个价值,等与这个区间和×区间最小值,

  a[i]表示第i位的权值,L[i]表示第i个数左边第一个比他小的数,R[i]表示右边第一个比它小的数。

  然后对于每一位i,如果a[i]为正数,我们可以求包含i的区间和最大的子区间,然后再乘上这个值,当然不能越过L[i]和R[i]。

  我们先定义sum(i,j)为i到j的区间和,再定义lmax[i]为以i 为右端点的使得区间和和最大的左端点位置,(即求一个l=i,使得sum(l,i)最大)。

  那么,lmax[i]可以通过lmax[i-1]更新,这个就是一个贪心吧,分两种情况:

http://advntravel.com/zhanzidongji/41.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有