题意:





思路:

dp[i][j] 表示前i + 1个数变成单调且最后一个数是B[j],此时的最小成本

dp[i][j] = min(dp[i – 1][k]) + |A[i] – B[j]| 【k = 0->j】

但是我们发现现在的复杂度是O(n^3) 卡不过去

怎么优化呢

保存个最小值不就行了嘛….复杂度O(n^2)

Ps:这道题可以优化空间…

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 2222
int n,a[N],b[N],c[N],f[N][N],ans=0x7fffffff;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
sort(b+1,b+1+n);
for(int i=1;i<=n;i++)c[i]=lower_bound(b+1,b+1+n,a[i])-b;
memset(f,0x7f,sizeof(f));
for(int i=1;i<=n;i++)f[0][i]=0;
for(int i=1;i<=n;i++){
int minn=0x7fffffff;
for(int j=1;j<=n;j++){
minn=min(minn,f[i-1][j]);
f[i][j]=minn+abs(b[j]-b[c[i]]);
}
}
for(int i=1;i<=n;i++)ans=min(ans,f[n][i]);
printf("%d\n",ans);
}

优化空间的版本~

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 2222
int n,a[N],b[N],c[N],f[2][N],ans=0x7fffffff;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
sort(b+1,b+1+n);
for(int i=1;i<=n;i++)c[i]=lower_bound(b+1,b+1+n,a[i])-b;
memset(f,0x7f,sizeof(f));
for(int i=1;i<=n;i++)f[0][i]=0;
for(int i=1;i<=n;i++){
int minn=0x7fffffff;
for(int j=1;j<=n;j++){
minn=min(minn,f[(i+1)%2][j]);
f[i%2][j]=minn+abs(b[j]-b[c[i]]);
}
}
for(int i=1;i<=n;i++)ans=min(ans,f[n%2][i]);
printf("%d\n",ans);
}

最新文章

  1. asp.net mvc 之旅—— 第四站 学会用Reflector调试我们的MVC框架代码
  2. 安利eclipse插件之log4E
  3. jQuery实现在线文档
  4. HTTP POST上传文件(wininet实现)
  5. hdu2073递推题
  6. Android AsyncTask学习
  7. AFNetworking之多图片-文件上传
  8. (简单) HDU 5154 Harry and Magical Computer,图论。
  9. css3---线性渐变
  10. struts2.0的工作原理?
  11. --------------Hibernate学习(四) 多对一映射 和 一对多映射
  12. 介绍一种非常好用汇总数据的方式GROUPING SETS
  13. Java自定义类加载和ClassPath类加载器
  14. VS2008 编译 libpng库
  15. Maven项目的结构分析
  16. ceph luminous 新功能之内置dashboard 之 mgr功能模块配置
  17. 转:查看linux系统版本号
  18. java8 - 3
  19. 网站漏洞扫描工具Uniscan
  20. hdu 4403 爆搜

热门文章

  1. 数据共享之相互排斥量mutex
  2. Java的接口总结
  3. 为powerpc交叉编译nginx
  4. [Struts2] No result defined for action ... and result input &amp;amp; Invalid field value for field ...
  5. php利用href进行页面传值的正确姿势
  6. ios修改了coredata数据结构后,更新安装会闪退
  7. hdoj--4325--Flowers(线段树+二分)
  8. CentOS7设置中文输入法
  9. ie浏览器下get方式获取数据无效问题
  10. HD-ACM算法专攻系列(6)——Big Number