首先按数据值排序,那么连续一段区间的dfs序一定也是连续的。

  将权值离散化,设f[i][j][k]为i到j区间内所有点的权值都>=k的最小代价,转移时枚举根考虑是否修改权值即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 75
int n,m,b[N],f[N][N][N],sum[N];
struct data
{
int x,y,z;
bool operator <(const data&a) const
{
return x<a.x;
}
}a[N];
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj1564.in","r",stdin);
freopen("bzoj1564.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read();
for (int i=;i<=n;i++) a[i].x=read();
for (int i=;i<=n;i++) b[i]=a[i].y=read();
for (int i=;i<=n;i++) a[i].z=read();
sort(a+,a+n+);sort(b+,b+n+);
for (int i=;i<=n;i++) a[i].y=lower_bound(b+,b+n+,a[i].y)-b;
for (int i=;i<=n;i++) sum[i]=sum[i-]+a[i].z;
memset(f,,sizeof(f));
for (int i=;i<=n;i++)
{
for (int k=;k<=n;k++)
f[i][i-][k]=;
for (int k=;k<=a[i].y;k++)
f[i][i][k]=a[i].z;
for (int k=a[i].y+;k<=n;k++)
f[i][i][k]=a[i].z+m;
}
for (int k=;k<=n;k++) f[n+][n][k]=;
for (int k=;k<=n;k++)
for (int i=;i<=n-k+;i++)
{
int j=i+k-;
for (int root=i;root<=j;root++)
{
f[i][j][a[root].y]=min(f[i][j][a[root].y],f[i][root-][a[root].y]+f[root+][j][a[root].y]+sum[j]-sum[i-]);
for (int d=;d<=n;d++)
f[i][j][d]=min(f[i][j][d],f[i][root-][d]+f[root+][j][d]+sum[j]-sum[i-]+m);
}
for (int d=n;d>=;d--) f[i][j][d]=min(f[i][j][d],f[i][j][d+]);
}
cout<<f[][n][];
return ;
}

最新文章

  1. 函数指针_typedef
  2. 修改dedecms默认文章来源 &quot;未知&quot;改为关键词
  3. nginx https使用
  4. Ubuntu/linux 安装 kernel-devel
  5. C++Primer 第九章
  6. android 学习随笔二十六(动画:属性动画)
  7. Qt之QHeaderView添加复选框
  8. [dp]POJ2559 &amp;&amp; HDOJ1506 Largest Rectangle in a Histogram
  9. NChome导出补丁包需要注意的东西
  10. 【转】HTML5的语音输入 渐进使用HTML5语言识别, so easy!
  11. Linux 开机自检的设置(tune2fs和fsck)
  12. HOJ———丢手绢
  13. [笔记]机器学习(Machine Learning) - 01.线性回归(Linear Regression)
  14. Spring - Spring容器概念及其初始化过程
  15. JS中var和let
  16. CentOS7搭建时间服务器-chrony(不坑)
  17. [JCIP笔记] (一)多线程的起源
  18. List集合中元素排序
  19. SQL Server之深入理解STUFF
  20. php判断用户是否关注微信公众号

热门文章

  1. 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)
  2. Maven学习(十二)-----Maven POM
  3. Android Studio 3.1.2 Device File Explorer nothing to show
  4. Python中的解决中文字符编码的问题
  5. grunt requireJS 的基础配置
  6. scrapy+selenium+chromedriver解析动态渲染页面
  7. 印度电商Snapdeal获投$1.34亿 eBay领投
  8. DOM实战
  9. angularjs工作原理解析
  10. CSS布局之圣杯布局和双飞翼布局