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. windows,phalcon工具的安装使用

    一.使用工具之前,必须安装phalcon的扩展,也就是php_phalcon.dll动态链接库 phalcon官方地址:https://github.com/phalcon/cphalcon/rele ...

  2. PAT 1058 选择题(20)(代码+思路)

    1058 选择题(20 分) 批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数 N(≤ 1000)和 M(≤ 100 ...

  3. js导出到word、json、excel、csv

    tableExport.js ///*The MIT License (MIT) //Copyright (c) 2014 https://github.com/kayalshri/ //Permis ...

  4. xxnet 360浏览器设置

    开xxnet全局pac只能代理. 然后选择360浏览器里面使用ie代理设置就行

  5. 项目解析1、登录验证用户是否存在 储备知识 Python 之 decorator装饰器

    下面是我对 装饰器 这一小节的总结, 以及自己的理解. 注:[本文中的代码参考上述教程] 很多时候我会把Python的很多语法与C++相融合,在C++中,函数的名称即为函数的地址,我们可以通过定义成为 ...

  6. 构造函数constructor 与析构函数destructor(三)

    (1)构造函数初始化列表: 1 class Test{ 2 int i; 3 public: 4 Test(int vi):i(vi){}//这里的从冒号开始,到右大括号结束,这一段是构造函数初始化列 ...

  7. 为了记忆和方便翻阅 vue构建后的结构目录说明

    一. ├── build              // 项目构建(webpack)相关代码             记忆:(够贱)    9个 │ ├── build.js       // 生产环 ...

  8. 20155213 2016-2017-2 《Java程序设计》第八周学习总结

    20155213 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十四章NIO与NIO2 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你 ...

  9. 处理No CPU/ABI system image for target的方法

    处理No CPU/ABI system image for target的方法 最近菩提搭建完成Android开发环境后,在创建安卓模拟器的时候遇到了问题.这个问题就是图片中显示的no CPU/ABI ...

  10. C程序之修改Windows的控制台大小

    //change the console size #include <stdio.h> #include<stdlib.h> //必须有 int main(int argc, ...