$f[i][j]$表示仅考虑$[i,j]$区间的答案,则

$f[i][j]=\min(\max(f[i][k-1],f[k+1][j])+a[k]),i\leq k\leq j$

维护出$\max$的分界点后用一堆线段树维护即可。

时间复杂度$O(n^2\log n)$。

#include<cstdio>
const int N=2005,inf=~0U>>1;
int M,n,i,j,a[N],g,f[N][N];
inline void up(int&a,int b){if(a>b)a=b;}
struct ZKW{
int v[4100];
inline void ask(int x,int y,int&t){
if(x>y)return;
for(x+=M-1,y+=M+1;x^y^1;x>>=1,y>>=1){
if(~x&1)up(t,v[x^1]);
if(y&1)up(t,v[y^1]);
}
}
inline void ins(int x,int y){for(x+=M;x;x>>=1)up(v[x],y);}
inline void build(){for(int i=1;i<=n+M;i++)v[i]=inf;}
}T1[N],T2[N];
inline void add(int x,int y){
if(x>1)T1[y].ins(x-1,f[x][y]+a[x-1]);
if(y<n)T2[x].ins(y+1,f[x][y]+a[y+1]);
}
int main(){
scanf("%d",&n);
for(M=1;M<n+2;M<<=1);
for(i=1;i<=n;i++)scanf("%d",&a[i]),T1[i].build(),T2[i].build();
for(i=1;i<=n;i++)add(i,i-1);
for(i=1;i<=n;i++)f[i][i]=a[i],add(i,i);
for(i=n;i;i--)for(g=i,j=i+1;j<=n;j++){
while(g<=j&&f[i][g-1]<f[g+1][j])g++;
f[i][j]=inf;
T1[j].ask(i,g-1,f[i][j]);
T2[i].ask(g,j,f[i][j]);
add(i,j);
}
return printf("%d",f[1][n]),0;
}

  

BZOJ2448 : 挖油的更多相关文章

  1. bzoj千题计划235:bzoj2448: 挖油

    http://www.lydsy.com/JudgeOnline/problem.php?id=2448 一遍过,嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎,O(∩_∩)O~ 题意是最小化最大值 设计区间dp dp[i ...

  2. BZOJ 2448: 挖油

    Description [0,x]中全是1,其余全是0,每个点有一个权值,求最坏情况下得到x的最小权值. Sol DP+单调队列. 首先就是一个 \(O(n^3)\) 的DP. \(f[i][j]\) ...

  3. 区间DP复习

    区间DP复习 (难度排序:(A,B),(F,G,E,D,H,I,K),(C),(J,L)) 这是一个基本全在bzoj上的复习专题 没有什么可以说的,都是一些基本的dp思想 A [BZOJ1996] [ ...

  4. OI题目类型总结整理

    ## 本蒟蒻的小整理qwq--持续更新(咕咕咕) 数据结构 数据结构 知识点梳理 数据结构--线段树 推荐yyb dalao的总结--戳我 以后维护线段树还是把l,r写到struct里面吧,也别写le ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. 网络神器Greasemonkey(油猴子)使用方法简介+脚本分享【转载】

    推荐下,觉得这个方法有用, 今天艾薇百科来介绍一下功能强大的Greasemonkey,俗称"油猴子",Greasemonkey可以自由定制网页,实现你想要的各种功能.堪称" ...

  7. 洛谷 P1378 油滴扩展 Label:搜索

    题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完毕才能放置下一个油滴. ...

  8. 油猴 greasemonkey 背景音乐 火狐 chrome 背景音乐

    火狐,chrome背景音乐 http://www.w3school.com.cn/tags/tag_audio.asp js插入背景音乐,猴油脚本使用 var audio = document.cre ...

  9. 记账类APP竞品分析-挖财与随手记

    注:本文更新中. 一.概览 1.  产品名称及版本 l  挖财11.2.0.0 免费版(2016/9/6发布) l  随手记10.2.8免费版(2016/8/22发布) 2.  设备信息 设备型号:i ...

随机推荐

  1. CentOS7下Firewall防火墙配置用法详解

    官方文档地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide ...

  2. CLR via C#(10)-参数

    一. 命名参数.可选参数 命名参数和可选参数是在Visual C#2010中引入的新特性. 笨地儿我个瓜不兮兮的,今天才知道. 可选参数:定义方法时为参数设置默认值,调用该方法时可以省略为某些形参指定 ...

  3. Jquery.Datatables 基本创建方法

    基本创建 <!--定义操作列按钮模板--> <script id="tpl" type="text/x-handlebars-template" ...

  4. Python 调试 PDB

    出处:http://blog.163.com/gjx0619@126/blog/static/12740839320114995947700/ 完整 请参考:http://docs.python.or ...

  5. eclipse项目迁移到android studio(图文最新版)

    前言 最近Android studio(下文简称AS)官方发布了正式版,目前火得不行.个人认为主要是因为android是google自家的产品,AS也是他自己搞的IDE,以后的趋势android开发肯 ...

  6. Shell编程基础教程6--shell函数

    6.shell函数    6.1.定义函数        简介:            shell允许将一组命令集或语句形成一个可用块,这些块成为shell函数        定义函数的格式      ...

  7. CXF学习(2) helloworld

    0.新建一个项目取名wsserver. pom.xml 文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...

  8. js判断手机端Android手机还是iPhone手机

    /*判断当前设备是平板.安卓.苹果设备*/ <script type="text/javascript"> function fBrowserRedirect(){ v ...

  9. 物化视图刷新慢--有可能是mv log被多个mv使用造成的

    同事说物化视图刷新慢,经检生产环境,发现部分物化视图刷新慢的原因是:由于同一个物化视图日志(mv log)被多个物化视图(mv)使用,不同的物化视图(mv)使用不同的刷新间隔,导致物化视图日志(mv ...

  10. How to choose the number of topics/partitions in a Kafka cluster?

    This is a common question asked by many Kafka users. The goal of this post is to explain a few impor ...