DP/四边形不等式


  邮局,经典的四边形不等式例题!

  关于四边形不等式的学习请看 赵爽论文《动态规划加速原理之四边形不等式》

  题目总结&题解:http://blog.csdn.net/shiwei408/article/details/8791011

  

  一个显而易见的结论是:对[l,r]这个区间内放一个邮局,放在中间的村子代价最小(类似中位数的感觉?。。。)

  这道题我一开始想动规方程的时候想成【石子合并】那种了……实际上dp[i][j]表示的是前 j 个村庄一共建了 i 个邮局的最小花费……

  然后就是以邮局数目为阶段转移……倒推可以减少可行状态,降低复杂度

 Source Code
Problem: User: sdfzyhy
Memory: 1108K Time: 0MS
Language: G++ Result: Accepted Source Code //POJ 1160
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
#define pb push_back
using namespace std;
int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>''){ if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<=''){ v=v*+ch-''; ch=getchar();}
return v*=sign;
}
typedef long long LL;
/******************tamplate*********************/
const int N=,INF=~0u>>;
int dp[][N],s[][N],w[N][N],a[N],n,m; int main(){
#ifndef ONLINE_JUDGE
freopen("1160.in","r",stdin);
freopen("1160.out","w",stdout);
#endif
n=getint(); m=getint();
F(i,,n) a[i]=getint(); F(i,,n){
w[i][i]=;
F(j,i+,n) w[i][j]=w[i][j-]+a[j]-a[(i+j)>>];
}
F(i,,n) F(j,,m) dp[j][i]=INF;
F(i,,n){
dp[][i]=w[][i];
s[][i]=;
}
F(i,,m){
s[i][n+]=n;
D(j,n,i+)
F(k,s[i-][j],s[i][j+])
if (dp[i-][k]+w[k+][j]<dp[i][j]){
s[i][j]=k;
dp[i][j]=dp[i-][k]+w[k+][j];
}
}
printf("%d\n",dp[m][n]);
return ;
}

最新文章

  1. This TableLayout layout or its LinearLayout parent is possibly useless
  2. javascript实现字符串的截取
  3. WIN8 平台应用隐私声明
  4. Tab指示符——Indicator
  5. MongoDb Replica Set中使用的地址
  6. HTML5入门九---Canvas画布
  7. [置顶] 提高生产力:Web开发基础平台WebCommon的设计和实现
  8. 新闻专栏~ART让Android更流畅
  9. Object-C中Category类体验
  10. 音频处理EQ的基本概念
  11. Asp.Net Core 轻松学-在.Net Core 使用缓存和配置依赖策略
  12. Linux进阶知识和命令
  13. django分页
  14. How to use BMW 35080 adapter with Yanhua Mini ACDP
  15. innobackupex做MySQL增量备份及恢复
  16. git使用——推送本地文件到远程仓库
  17. swagger:API在线文档自动生成框架
  18. 自定义元素 v1:可重用网络组件
  19. MHA failover GTID 专题
  20. 利用tcpcopy引流过程

热门文章

  1. MessageBox详解
  2. 【深入比较ThreadLocal模式与synchronized关键字】
  3. C++求最大公约数
  4. 强大的网络通信框架(实现缓存)--第三方开源--volley
  5. [转]浅谈Python web框架
  6. VS2013+Qt5.6+VSaddin1.2.5
  7. C# WPF使用ZXing生成二维码ImageSource
  8. [第四版]用getaddrinfo设置tcp基本连接属性
  9. 分享我常用的一些JS验证和函数
  10. db2建立表空间