zoukankan      html  css  js  c++  java
  • 斜率优化选做

    APIO2010 特别行动队

    [frac{f_j+a imes sum_j^2+b imes sum_j-f_k-a imes sum_k^2-b imes sum_k}{sum_j-sum_k} >2asum_x ]

    转移点 (j,k) ,当前点 (x) ,右侧是单调降的

    如果 (j>k) 且上式成立,则 (j)(k)

    元素关系单调降的单调队列(即一个上凸壳)

    弹栈:

    如果队首的两个点的斜率大于 (2asum_x),就弹

    队尾就是满足单调降就好了

    ZJOI2007 仓库建设

    (f_x=(minlimits^{x-1}_ {i=1} f_i-s1_i imes dis_y+s2_i)+s1_y imes dis_y-s2_y)

    其中:

    [s1_x=sum ^{x}_ {i=1}p_i s2_x=sum_{i=1}^x p_i imes dis_i ]

    如果 (i<j)

    [frac{f_i-f_j+s2_i-s2_j}{s1_i-s1_j}>dis_x ]

    (i) 点则不优

    右边是单调增的,所以是个下凸壳

    [USACO08MAR]Land Acquisition G

    首先用排序把矩形留下有用的部分

    然后元素是满足 (x) 单调减,(y) 单调增

    然后就可以斜率优化了

    [frac{f_j-f_k}{x_{k+1}-x_{j+1}}>y_i ]

    右面是单调增的,维护下凸壳即可

    SDOI2016征途

    先推方差

    把式子推成:

    [m^2s^2=(m sumlimits _{i=1}^m d_i^2)-(sum^ m _{i=1} v_i)^2 ]

    所以这个式子最后就是求 (sumlimits_{j=1}^i d_i^2) 的最小值

    其中 (d_i) 表示第 (i) 天走的路程

    (f_{i,j}) 为前 (i) 段分 (j) 天走的最小方差

    这里我们对于每个 (j) 进行计算

    [f_{i,j}=minlimits_{p=1}^{i-1} f_{p,j-1}+(s_i-s_j)^2 ]

    直接拆式子:

    如果 (x<y)

    [frac{f_x+s_x^2-(f_y+s_y^2)}{s_x-s_y}<2 imes s_i ]

    (x) 不优

    右边单调增

    上单调队列即可,记得用滚动数组、

    Luogu6047 丝之割

    这个题有点像??

    ({a})({b}) 做前缀后缀 (min)

    列方程

    [f_i=minlimits^{i-1}_ {j=1} f_j+a_{x_{j+1}-1} imes b_{y_i+1} ]

    由于做了前缀后缀 (min)

    所以我们在取 ({a})({b}) 直接对应下标取就好

    这里加 (1)(1) 相当繁复

    由链接的那个题,先处理哪些点是没有用处的

    然后直接斜率优化这个转移即可

    式子:

    [frac{f_p-f_q}{x_p-x_q}<y_i ]

    这里的加一减一啥的就不往式子里写了

    右边排完序单调,维护下凸壳

  • 相关阅读:
    使用Ansible连接AWS EC2
    centos7 常用工具包安装
    基于redis的分布式ID生成器
    使用Docker的macvlan为容器提供桥接网络及跨主机通讯
    小程序使用腾讯视频
    切换 Python2 Python3
    PHP字符串替换
    小程序常用操作,if,for,跳转,弹出提示
    小程序订单核销的思路
    PHP 批量删除的实现
  • 原文地址:https://www.cnblogs.com/yspm/p/12829627.html
Copyright © 2011-2022 走看看