LA 4726 再看斜率优化
感觉最近一批解题报告没写,现在慢慢补吧,算是noip前攒攒rp了
首先感到深深的自责,因为之前对斜率优化没有深入的理解,只是记住了一般步骤,并没有完全了解为什么这样做
先就这道题目而言
首先这种序列题不难想到用前缀和的思想搞
顺着扫描每个点i,对于以它结尾的序列最大平均值,我们就是要找一个j,使得s[i]-s[j]/i-j最大 i-j>=L
设状态k,j都满足条件,k>j,如果
s[i]-s[j]/(i-j)<=s[i]-s[k]/(i-k)
一开始我还SB想化成原来做斜率优化题目的方法做,后来我看了《浅谈数形结合思想在信息学竞赛中的应用》
发现自己就是太弱了,斜率优化的本质其实就是数形结合,
这个式子已经是斜率,之所以之前的题目辛辛苦苦的化就是要弄出斜率………………
至于这道题剩下的说明《浅谈数形结合思想在信息学竞赛中的应用》讲的非常详细,不再赘述
看这篇论文,回头想想,我才明白之前做斜率优化的原理,以之前的poj1180为例(http://hi.baidu.com/phile99/item/ce87b31beb2d1c0c8ebde4b0自我传送)
到了这里(w[k]-w[j])/(f[k]-f[j])>=1/(t[i]+c)
设A[i]=1/(t[i]+c);
于是我们得到了一些点Pk,Pj,他们的坐标(f[j],w[j])
之前的报告中我们已经证明了下凸线一定会被删去(即对于k<j<i,G(i,j)>G(j,k) j一定不是最优,G就相当于斜率)
实际上下面我们要维护一个上凸线的过程(其实仔细琢磨和凸包很像)
这里我们之所以用单调队列来维护是基于一个条件,A[i]是单调函数
拿这道题为例,对于状态i,当G(k,j)>=A[i],k一定比j优,从而不考虑j
对于以后的i,A[i]是单调减函数,那么同样的G(k,j)一定也>=A[i]也就说j以后都不用在考虑了
在这种情况下,我们才敢用单调队列维护两点的斜率,才保证了每个点入队一次且被删除一次
如果A[i]不是单调的呢?由于还没有做过这样的题见到再说吧,求指教
LA 4726 再看斜率优化的更多相关文章
- UVALive 4726 Average ——(斜率优化DP)
这是第一次写斜率优化DP= =.具体的做法参照周源论文<浅谈数形结合思想在信息学竞赛中的应用>.这里仅提供一下AC的代码. 有两点值得注意:1.我这个队列的front和back都是闭区间的 ...
- 蒟蒻关于斜率优化DP简单的总结
斜率优化DP 题外话 考试的时候被这个玩意弄得瑟瑟发抖 大概是yybGG的Day4 小蒟蒻表示根本不会做..... 然后自己默默地搞了一下斜率优化 这里算是开始吗?? 其实我讲的会非常非常非常简单,, ...
- 【BZOJ1096】【ZJOI2007】仓库建设(斜率优化,动态规划)
[BZOJ1096][ZJOI2007]仓库建设(斜率优化,动态规划) 题面 Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原 ...
- 动态规划专题(五)——斜率优化DP
前言 斜率优化\(DP\)是难倒我很久的一个算法,我花了很长时间都难以理解.后来,经过无数次的研究加以对一些例题的理解,总算啃下了这根硬骨头. 基本式子 斜率优化\(DP\)的式子略有些复杂,大致可以 ...
- Codeforces 660F Bear and Bowling 4 斜率优化 (看题解)
Bear and Bowling 4 这也能斜率优化... max[ i ] = a[ i ] - a[ j ] - j * (sum[ i ] - sum[ j ])然后就能斜率优化啦, 我咋没想到 ...
- BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 9812 Solved: 3978[Submit][St ...
- 【BZOJ-1010】玩具装箱toy DP + 斜率优化
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 8432 Solved: 3338[Submit][St ...
- BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化DP
1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再 ...
- APIO2010特别行动队(单调队列、斜率优化)
其实这题一看知道应该是DP,再一看数据范围肯定就是单调队列了. 不过我还不太懂神马单调队列.斜率优化…… 附上天牛的题解:http://www.cnblogs.com/neverforget/arch ...
随机推荐
- Java基础知识强化12:Java中运用数组的四种排序方法
1.使用JavaApi文档中的Arrays类中的sort()进行快速排序 首先我们直接看代码如下: package himi.text; import java.util.Arrays; public ...
- svn 树冲突
情况类似如下:(其中 removed_directory 是你工作的某个目录) 代码如下 复制代码 $svn statusD C removed_directory> local ...
- 快速打出System.out.println("");
sysout---->Alt+/--->System.out.println():
- Eclipse vs IDEA快捷键对比大全(win系统)
花了几天时间熟悉IDEA的各种操作,将各种快捷键都试了一下,感觉很是不错! 以下为我整理了一下开发过程中经常用的一些Eclipse快捷键与IDEA的对比,方便像我一样使用Eclipse多年但想尝试些改 ...
- ASP+MYSQL的配置及乱码解决
TempStr = "driver={MySQL ODBC 3.51 Driver};database="&strDB&";server="&a ...
- Jquery不生效
$(document).ready(function(){这个都没有生效, 1.网上查了说是jquery的路劲引入的有问题,经查并不是这个问题 2.换了一个jquery的版本,发现生效了. 原不生效文 ...
- Xcode断点的一些黑魔法
转自 只会左键断点?是时候试试这样那样断点了 编码不能没调试,调试不能没断点(Break Point).XCode的断点功能也是越来越强大. 基本断点 如下图,这种是最常用的断点,也是最容易设置.左键 ...
- Junit4_单元测试
不多说,直接练习学习. 1.将Junit4单元测试包引入项目:项目右键——“属性”,选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Libr ...
- tab选项卡-jQuery
上次用原生的js写了个tab选项卡 这次按照一样的思路用jQuery写了一个 ,直接看代码: /*布局*/ <div id="div1"> <input cl ...
- nginx——location 优先级
一. location 的匹配符1.等于匹配符:=等于匹配符就是等号,特点可以概括为两点:精确匹配不支持正则表达式2.空匹配符空匹配符的特点是:匹配以指定模式开始的 URI不支持正则表达式3.正则匹配 ...