非常经典的区间dp模板

对于每一个大于二的区间 我们显然都可以将它拆分成两个子序列 那么分别计算对于每个取最优值即可

#pragma GCC optimize("O2")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<limits.h>
#include<ctime>
#define N 100001
typedef long long ll;
const int inf=0x3fffffff;
const int maxn=2017;
using namespace std;
inline int read()
{
int f=1,x=0;char ch=getchar();
while(ch>'9'|ch<'0')
{
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0')
{
x=(x<<3)+(x<<1)+ch-'0';
ch=getchar();
}
return f*x;
}
int dp[maxn][maxn],a[N],sum[N];
int main()
{
int n=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
sum[i]=sum[i-1]+a[i];
}
for(int len=1;len<=n;len++)
{
for(int l=1,r;(r=l+len)<=n;l++)
{
dp[l][r]=inf;
for(int k=l;k<r;k++)
dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]+sum[r]-sum[l-1]);
}
}
cout<<dp[1][n];
}

另外强烈安利这篇讲区间dp的  全网最棒!强推一波!

顺便我居然才开始学区间dp(我太弱啦!

最新文章

  1. SQL Server 2014新特性探秘(3)-可更新列存储聚集索引
  2. Read excel and put cell data into HashMap
  3. Maven国内下载站点
  4. Hadoop实战5:MapReduce编程-WordCount统计单词个数-eclipse-java-windows环境
  5. linux下打包命令的使用
  6. [Tool] 源代码管理之Git
  7. 设定所有tableView中cell的分隔线颜色
  8. JSP在项目中的路径问题
  9. Linux 挂载新硬盘
  10. linux中sed用法
  11. 解析xlsx与xls--使用2012poi.jar
  12. spark1.3.1使用基础教程
  13. C#断点调试时属性get块逻辑执行多次
  14. node.js浅见
  15. 线程相关的sleep()、yield()、wait()、join()方法介绍
  16. IDEA中的替换功能(替换代码中的变量名很好用哦)
  17. .NET MVC EF框架数据库连接配置
  18. 导出数据库表为world文档说明,以及PowerDesigner导出表结构pdm设计文档
  19. Ubuntu16.04 安装 Django
  20. 6.2 socket 流协议与粘包

热门文章

  1. Python列表去重复元素
  2. HDU 1166 敌兵布阵(线段树/树状数组模板题)
  3. exec函数族
  4. 一脸懵逼学习HBase的搭建(注意HBase的版本)
  5. linux服务器性能——CPU、内存、流量、磁盘使用率的监控
  6. Visual Studio &quot;14&quot; CTPs
  7. MySQL常用引擎的锁机制
  8. beautiful number 数位dp
  9. 使用loadrunner录制脚本的思路和注意要点
  10. TensorFlow卷积层-函数