P1880 [NOI1995]石子合并


丢个地址就跑(关于四边形不等式复杂度是n方的证明)

嗯所以这题利用决策的单调性来减少k断点的枚举次数。具体看lyd书。这部分很生疏,但是我还是选择先不管了。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. typedef double db;
  5. template<typename T>inline char MIN(T&A,T B){return A>B?A=B,:;}
  6. template<typename T>inline char MAX(T&A,T B){return A<B?A=B,:;}
  7. template<typename T>inline T _min(T A,T B){return A<B?A:B;}
  8. template<typename T>inline T _max(T A,T B){return A>B?A:B;}
  9. template<typename T>inline T read(T&x){
  10. x=;int f=;char c;while(!isdigit(c=getchar()))if(c=='-')f=;
  11. while(isdigit(c))x=x*+(c&),c=getchar();return f?x=-x:x;
  12. }
  13. const int N=+,INF=0x3f3f3f3f;
  14. int p[N][N],Fmin[N][N],Fmax[N][N],sum[N],a[N];
  15. int n;
  16.  
  17. int main(){//freopen("tmp.in","r",stdin);freopen("tmp.out","w",stdout);
  18. read(n);
  19. for(register int i=;i<=n;++i)a[i+n]=read(a[i]);
  20. for(register int i=;i<(n<<);++i)sum[i]=sum[i-]+a[i],p[i][i]=i;
  21. for(register int i=(n<<)-;i;--i){
  22. for(register int j=i+;j<(n<<);++j){
  23. Fmax[i][j]=_max(Fmax[i+][j],Fmax[i][j-])+sum[j]-sum[i-];Fmin[i][j]=INF;
  24. for(register int k=p[i][j-];k<=p[i+][j];++k)
  25. if(MIN(Fmin[i][j],Fmin[i][k]+Fmin[k+][j]+sum[j]-sum[i-]))p[i][j]=k;
  26. if(!(Fmin[i][j]^INF))Fmin[i][j]=;
  27. }
  28. }
  29. Fmin[][]=INF;
  30. for(register int i=;i<=n;++i)MIN(Fmin[][],Fmin[i][i+n-]),MAX(Fmax[][],Fmax[i][i+n-]);
  31. printf("%d\n%d\n",Fmin[][],Fmax[][]);
  32. return ;
  33. }

P1880 [NOI1995]石子合并[区间dp+四边形不等式优化]的更多相关文章

  1. P1880 [NOI1995]石子合并 区间dp

    P1880 [NOI1995]石子合并 #include <bits/stdc++.h> using namespace std; ; const int inf = 0x3f3f3f3f ...

  2. 洛谷 P1880 [NOI1995] 石子合并(区间DP)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 这道题是石子合并问题稍微升级版 这道题和经典石子合并问题的不同在于,经典的石子合 ...

  3. HDU4632 Poj2955 括号匹配 整数划分 P1880 [NOI1995]石子合并 区间DP总结

    题意:给定一个字符串 输出回文子序列的个数    一个字符也算一个回文 很明显的区间dp  就是要往区间小的压缩! #include<bits/stdc++.h> using namesp ...

  4. P1880 [NOI1995]石子合并 区间dp+拆环成链

    思路 :一道经典的区间dp  唯一不同的时候 终点和起点相连  所以要拆环成链  只需要把1-n的数组在n+1-2*n复制一遍就行了 #include<bits/stdc++.h> usi ...

  5. CSP 201612-4 压缩编码 【区间DP+四边形不等式优化】

    问题描述 试题编号: 201612-4 试题名称: 压缩编码 时间限制: 3.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1 ...

  6. Codevs 3002 石子归并 3(DP四边形不等式优化)

    3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...

  7. 区间dp+四边形不等式优化

    区间dp+四边形优化 luogu:p2858 题意 给出一列数 \(v_i\),每天只能取两端的数,第 j 天取数价值为\(v_i \times j\),最大价值?? 转移方程 dp[i][j] :n ...

  8. 51nod 1022 石子归并 V2 —— DP四边形不等式优化

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1022 1022 石子归并 V2  基准时间限制:1 秒 空间限 ...

  9. [51nod 1022] 石子归并v2 [dp+四边形不等式优化]

    题面: 传送门 思路: 加强版的石子归并,现在朴素的区间dp无法解决问题了 首先我们破环成链,复制一条一样的链并粘贴到原来的链后面,变成一个2n长度的序列,在它上面dp,效率O(8n^3) 显然是过不 ...

随机推荐

  1. USB协议[转]__总结得很好

    一 枚举过程:◆ 用户将一个USB设备插入USB端口,主机为端口供电,设备此时处于上电状态.◆主机检测设备.◆集线器使用中断通道将事件报告给主机.◆主机发送Get_Port_Status(读端口状态) ...

  2. 分布式搜索elasticsearch 环境搭建

    1.elasticsearch安装 elasticsearch的安装超级easy,解压即用(要事先安装好java环境). 到官网 http://www.elasticsearch.org下载最新版的 ...

  3. SpringBoot学习——运行原理学习及自定义Starter pom

    例如:pom文件 导入redis jar包 springboot怎么识别和集成? https://blog.csdn.net/flygoa/article/details/68484439 https ...

  4. 在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。

    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...

  5. mybatis前台传来一个String,后后台执行sql变成了true

    实际上参数传来的是一个字符串 3 ,不知道为什么会变成true 最后当然是查不到信息了.. 我在mapper映射文件里面使用了动态的where查询,我觉得跟这个关系不太大, 现在不知道怎么办,希望有思 ...

  6. 【Selenium + Python】路径报错之OSError: [Errno 22] Invalid argument: './t/report/2018-03-23_11:03:12_report.html'

    现象: 此问题真的是太痛苦了,查了好多资料是说路径的问题,结果还是报错,后来一点点的排查才发现原来是!!!!!! 废话不多说上原来代码: if __name__ == '__main__': star ...

  7. linux下ejabberd框架搭建

    ejabberd为erlang的IM的开源框架,一直想找个时间研究研究: 1.下载Ejabberd安装包 wget http://www.process-one.net/downloads/ejabb ...

  8. springboot @ConfigurationProperties @EnableConfigurationProperties @Bean @ Component

    https://www.cnblogs.com/duanxz/p/4520571.html https://juejin.im/post/5cbeaa26e51d45789024d7e2 1. Bea ...

  9. Linuxt图形界面安装

    通常安装图形界面需要安装Xorg.桌面环境(Gnome.KDE.xfce等).字体等.你的Linux是什么版本?具体要看你的linux来决定用什么命令来安装. #yum grouplist 自己看看列 ...

  10. windowsphone8.1学习笔记之应用数据(二)

    上一篇说了应用数据的应用设置,这篇说说应用文件,应用文件主要分为三种:本地应用文件.漫游应用文件和临时应用文件. 获取根目录方法如下,都是返回一个StorageFolder对象(稍后介绍这个). // ...