hdu3516 Tree Construction (区间dp+四边形优化)
构造方法肯定是把相邻两个点连到一起,变成一个新点,然后再把新点和别的点连到一起....
设f[i,j]为把第i到j个点都连到一起的代价,那么答案就是f[1,n]
f[i,j]=min{f[i,k]+f[k+1,j]+x[k+1]-x[i]+y[k]-y[j]} (画一画就知道了)
然后显然满足四边形不等式(怎么就显然了??)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
#define inf 0x3f3f3f3f
#define LL long long int
using namespace std;
const int maxn=; LL rd(){
LL x=;char c=getchar();int neg=;
while(c<''||c>''){if(c=='-') neg=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x*neg;
} int N,f[maxn][maxn][],p[maxn][]; int main(){
int i,j,k;
while(~scanf("%d",&N)){
for(i=;i<=N;i++) p[i][]=rd(),p[i][]=rd(),f[i][i][]=i;
if(N==){printf("0\n");continue;}
for(int t=;t<N;t++){
for(i=;i<=N;i++){
j=i+t;f[i][j][]=inf;
for(k=f[i][j-][];k<=j-&&k<=f[i+][j][];k++){
int a=f[i][k][]+f[k+][j][]+p[k][]-p[j][]+p[k+][]-p[i][];
if(a<f[i][j][]) f[i][j][]=a,f[i][j][]=k;
}
}
}
printf("%d\n",f[][N][]);
}
return ;
}
hdu3516 Tree Construction (区间dp+四边形优化)的更多相关文章
- POJ  1160  经典区间dp/四边形优化
		
链接http://poj.org/problem?id=1160 很好的一个题,涉及到了以前老师说过的一个题目,可惜没往那上面想. 题意,给出N个城镇的地址,他们在一条直线上,现在要选择P个城镇建立邮 ...
 - 51Nod 1022 石子归并 V2(区间DP+四边形优化)
		
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1022 题目大意: N堆石子摆成一个环.现要将石子有次序地合并成 ...
 - HDU  3506  (环形石子合并)区间dp+四边形优化
		
Monkey Party Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Tot ...
 - 区间dp+四边形不等式优化
		
区间dp+四边形优化 luogu:p2858 题意 给出一列数 \(v_i\),每天只能取两端的数,第 j 天取数价值为\(v_i \times j\),最大价值?? 转移方程 dp[i][j] :n ...
 - CSP 201612-4 压缩编码 【区间DP+四边形不等式优化】
		
问题描述 试题编号: 201612-4 试题名称: 压缩编码 时间限制: 3.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1 ...
 - HDU3480_区间DP平行四边形优化
		
HDU3480_区间DP平行四边形优化 做到现在能一眼看出来是区间DP的问题了 也能够知道dp[i][j]表示前 i 个节点被分为 j 个区间所取得的最优值的情况 cost[i][j]表示从i ...
 - [HDU3516] Tree Construction [四边形不等式dp]
		
题面: 传送门 思路: 这道题有个结论: 把两棵树$\left[i,k\right]$以及$\left[k+1,j\right]$连接起来的最小花费是$x\left[k+1\right]-x\left ...
 - hdu 3506 Monkey Party 区间dp + 四边形不等式优化
		
http://acm.hdu.edu.cn/showproblem.php?pid=3506 四边行不等式:http://baike.baidu.com/link?url=lHOFq_58V-Qpz_ ...
 - 51 nod 石子归并 + v2 + v3(区间dp,区间dp+平行四边形优化,GarsiaWachs算法)
		
题意:就是求石子归并. 题解:当范围在100左右是可以之间简单的区间dp,如果范围在1000左右就要考虑用平行四边形优化. 就是多加一个p[i][j]表示在i到j内的取最优解的位置k,注意能使用平行四 ...
 
随机推荐
- CentOS安装noVNC,以Web方式交付VNC远程连接
			
什么是noVNC noVNC 是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,noVNC 被普遍用在各大云计算.虚拟机控制 ...
 - Terraform:创建 Azure 虚机
			
笔者在前文<Terraform 简介>中简单介绍了 Terraform 相关的概念,本文让我们使用 Terraform 在 Azure 上创建一个虚机,以此来直观体验一下 Terrafor ...
 - Python - 内置函数 选例
			
概览参见 https://www.runoob.com/python/python-built-in-functions.html 官方文档 https://docs.python.org/3/li ...
 - 补充照片:某基同学使用Bing词典
			
某基同学使用Bing词典的照片
 - The Last Reader Response——13-17
			
Hi, everybody, nice to meet you, this is probably my best and meet you at a time, in the past a seme ...
 - (Alpha)Let's-M1后分析报告
			
Chronos团队Let's项目 Postmortem结果 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 在最初的用户需求和市场调研方面,团队进 ...
 - 在web.xml中配置监听器来控制ioc容器生命周期
			
5.整合关键-在web.xml中配置监听器来控制ioc容器生命周期 原因: 1.配置的组件太多,需保障单实例 2.项目停止后,ioc容器也需要关掉,降低对内存资源的占用. 项目启动创建容器,项目停止销 ...
 - Notepad++找回Plugin Manager{在v7.50后(包括7.50)不带有插件管理器(Plugin Manager)}
			
https://github.com/notepad-plus-plus/notepad-plus-plus/issues/2459 64 bit Plugin Manager is now avai ...
 - PhantomJS - Scriptable Headless Browser
			
http://phantomjs.org/ PhantomJS is an optimal solution for: Page automation Access webpages and extr ...
 - node的读写流
			
let http = require('http'); http.createServer((req,res)=>{ res.end(); }).listen(,()=>{ console ...