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 ...
 
随机推荐
- 利用 Lua 实现 App 动态化方案
			
因为动态化的东西我第一次看实现方案的源码,而且目前还是大三的学生,缺少很多实践经验说错的地方还请原谅,也希望能指出,被告知.想了很久还是决定写出来,求大神勿喷. 并且我的一个朋友bestswifter ...
 - Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
			
1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 分析: • 创建键盘录入数据对象 • 键盘录入多个数据,我们不知道多少个,所以用集合存储 • 以0结束,这个简单,只要键盘 ...
 - 自定义控件(视图)2期笔记10:自定义视图之View事件分发机制("瀑布流"的案例)
			
1. Touch事件的传递: 图解Touch事件的传递,如下: 当我们点击子View 02内部的Button控件时候,我们就触发了Touch事件. • 这个Touch事件首先传递给了顶级父View ...
 - 数据结构 : Hash Table
			
http://www.cnblogs.com/lucifer1982/archive/2008/06/18/1224319.html 作者:Angel Lucifer 引子 这篇仍然不讲并行/并发. ...
 - android MediaCodec 音频编解码的实现——转码
			
原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说 ...
 - CSS3伪类nth-child结合transiton动画实现文字若影若现
			
css3伪类nth-child结合transiton动画实现文字若影若现收先创建一个div盒子,然后包裹在div中的有10个span标签每个span标签填上内容一次为A,B,C,D,E,F,G,H,I ...
 - JS 模拟C# 字符串格式化操作
			
/*** ** 功能: 字符串格式化替换操作 ***/ String.prototype.format = function () { var args = arguments; return thi ...
 - C#线程池ThreadPool.QueueUserWorkItem接收线程执行的方法返回值
			
最近在项目中需要用到多线程,考虑了一番,选择了ThreadPool,我的需求是要拿到线程执行方法的返回值, 但是ThreadPool.QueueUserWorkItem的回调方法默认是没有返回值的,搜 ...
 - Java hashCode 和 equals()
			
1 Object中定义的hashCode() public int hashCode() Returns a hash code value for the object. This method i ...
 - vs 2013 编译zlib
			
zlib下载地址: http://pan.baidu.com/s/1pJqTcoV \zlib-1.2.8\contrib\vstudio\vc10\zlibvc.sln 打开这个文件, 根据提示, ...