tj:80pts:維護f[i][j]表示當前第i個方塊必須選,且選了j個的最優解,設w[i]為第i個方塊長度

則可以枚舉上次選了第k個方塊,則f[i][j]=max{f[k][j-1]+w[i]*(i-k)}

初值:f[i][1]=w[i]*i

100pts:記g[i]表示f[i][j-1],f[i]表示f[i][j],考慮每一次用g[i]得到f[i],首先將f數組清空

初值依然如上

考慮以前可以用來更新現在答案的2個點j,k什麼時候j比k優(k&lt;j)" role="presentation" style="position: relative;">(k<j)(k<j),則g[j]+w[i]∗(i−j)&gt;g[k]+w[i]∗(i−k)" role="presentation" style="position: relative;">g[j]+w[i]∗(i−j)>g[k]+w[i]∗(i−k)g[j]+w[i]∗(i−j)>g[k]+w[i]∗(i−k)

g[j]−w[i]∗j&gt;g[k]−w[i]∗k" role="presentation" style="position: relative;">g[j]−w[i]∗j>g[k]−w[i]∗kg[j]−w[i]∗j>g[k]−w[i]∗k

所以g[j]−g[k]&gt;w[i]∗(j−k)" role="presentation" style="position: relative;">g[j]−g[k]>w[i]∗(j−k)g[j]−g[k]>w[i]∗(j−k) 除過去得到(g[j]−g[k])/(j−k)&gt;w[i]" role="presentation" style="position: relative;">(g[j]−g[k])/(j−k)>w[i](g[j]−g[k])/(j−k)>w[i]

w[i]單調不增,考慮斜率優化,維護一个斜率單調遞減的隊列,保證其中所有斜率小於w[i],當sl(q[h],q[h+1])>w[i]時pop掉q[h]

jzoj5347的更多相关文章

随机推荐

  1. PAT 1072 开学寄语(20)(代码+思路)

    1072 开学寄语(20 分) 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面.理发.整衣, ...

  2. [python] can not find app ,module

    can not find module 1 startapp appname 而不是 startproject 2 不要自己创建项目根目录,要用mamage.py生成 can not find app ...

  3. TYVJ 1940 创世纪

    Description: 上帝手中有着 N 种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去以建造世界.每 种世界元素都可以限制另外一种世界元素,所以说上帝希望所有被投放的世 ...

  4. 2. Get the codes from GIT

    Clone the code from git.

  5. 8.14 右键自定义菜单 更加iframe 内容高度调整 iframe高度 js定时

    <div class="main_contain" id="z_div" style="position: relative;"> ...

  6. KBMMW 4.82.00 发布

    作者最近加紧了更新进度,赞一个. 时间都去哪儿了? 还没好好看4.81, 新版就来了. 这个版本主要是增强日志管理,已经强大到替换delphi 本身的异常处理了. We are happy to an ...

  7. kbmMWEncodeEscapes 中汉字编码的问题及解决办法

    kbmMWEncodeEscapes 是kbmmw 里面的一个函数,用来对URL 中的汉字进行编码,例如 http://127.0.0.1/getname?name=春节,由于'春节'是汉字,浏览器向 ...

  8. C++/C头文件 .h和 .c

    在C语言家族程序中,头文件被大量使用.一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成.头文件作为一种包含功能函数.数据接口声明的 ...

  9. 【转】ORACLE 表空间扩展方法

    转载地址:http://blog.itpub.net/28950170/viewspace-763139/ 第一步:查看表空间的名字及文件所在位置: select tablespace_name, f ...

  10. 一文读懂:超详细正态分布方差等于o的推导

    (uv)' = [(u+△u)(v+△v) - uv] /△x = (v△u+u△v +△u△v)/△x = v(△u/△x) + u(△v/△x) +(△u△v)/△x =u'v+uv'