斜率优化,数形结合(Average,uva 1451)
[i,j]这个子串的值是点i-1,与点j之间的斜率。
求所有子串的最大值就是求i-1到j的斜率的最大值。
每个点的横坐标为在子串中的位置(第几个),纵坐标为sum[i-1]。
问题转化为求n+1个点中(加入坐标原点)找两个点,横坐标至少相差L且斜率最大。
这个思路想清楚后剩下的就全是数学问题了,详见紫书P243。
代码写的不好。修修补补,cmp不是在比较斜率,而是在比
原创
2016-09-12 13:07:05 ·
381 阅读 ·
0 评论