易得每两个点之间建立邮局的最好位置两点最中间的点,两点之间如果没有奇数个数的点中间两个点都可以...(自己画一下图可以看出随着右边点的增大最佳点的增大非常平滑...强迫症一本满足)
 
w[i][j]为i,j两个点之间建立邮局的最小的距离累加和
则w[i][j]=w[i][j-1]+a[j]-a[(i+j)/2]; 
相对于前一个的总距离只需要加上新加入的点到最佳点的距离
(因为最佳点移动的非常平滑啊,要么是不动要么是动了之后相对于前一个邮局位置没什么意义(因为两点之间点数为偶数时中间两个点都可以看做最佳点,所以所有点分别到这两个点的距离和是一样的))
自己画图分析吧我画不出来图几何绘图太难用了席八.....
 
f[j][i]为在前i个点里建立j个邮局的距离累加和
f[j][i]=min(f[j][i],f[j-1][k]+w[k+1][i]);
 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m;
int a[]={};
int f[][]={};
int w[][]={};
int main(){
cin>>n>>m;
for(int i=;i<=n;i++){
cin>>a[i];
}
sort(a+,a++n);
for(int i=;i<=n;i++){
for(int j=i+;j<=n;j++){
w[i][j]=w[i][j-]+a[j]-a[(i+j)/];
}
}
for(int i=;i<=n;i++){
f[i][i]=;
f[][i]=w[][i];
}
for(int j=;j<=m;j++){
for(int i=j+;i<=n;i++){
f[j][i]=;
for(int k=;k<i;k++){
f[j][i]=min(f[j][i],f[j-][k]+w[k+][i]);
}
}
}
cout<<f[m][n]<<endl;
return ;
}

JZYZOJ1311 邮局设置问题 dp的更多相关文章

  1. 【IOI2000】邮局设置问题

    现在连基础DP都要看题解和代码才能写出来了,怎么办嘛QAQ 原题: 一些村庄建在一条笔直的高速公路边上,我们用一条坐标轴来描述这条公路,每个村庄的坐标都是整数,没有两个村庄的坐标相同.两个村庄的距离定 ...

  2. 题解——洛谷P4767 [IOI2000]邮局(区间DP)

    这题是一道区间DP 思维难度主要集中在如何预处理距离上 由生活经验得,邮局放在中间显然最优 所以我们可以递推求出\( w[i][j] \)表示i,j之间放一个邮局得距离 然后设出状态转移方程 设\( ...

  3. 如何在代码中设置以dp为单位的长度

    获取当前屏幕的密度系数 ,并设置控件以dp为单位的长宽   float density = getResources().getDisplayMetrics().density;   params = ...

  4. 设计师给了px显着的单位,Android要设置多少开发商dip、dp、sp?

    此链接    http://blog.csdn.net/xiaodongrush/article/details/29560431 1. 要开发一款Android APP,设计师和开发要约定哪些事情? ...

  5. 区间DP POJ1160村庄邮局问题

    POJ1160 题目大意:一系列村庄在一维坐标系上有序的排列,建设p个邮局,问各个村庄到邮局的最短距离和. 线性区间DP问题 dp数组的值为最短/最优距离 村庄和邮局为限制 dp[i][j]表示前i个 ...

  6. POJ 1160:Post Office 邮局经典DP

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17168   Accepted: 9270 Desc ...

  7. Codeforces Round #303 (Div. 2) C dp 贪心

    C. Woodcutters time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  8. hdu4336 Card Collector 概率dp(或容斥原理?)

    题意: 买东西集齐全套卡片赢大奖.每个包装袋里面有一张卡片或者没有. 已知每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1<=n<=20). 问集齐卡片需要买东西的数量的期望 ...

  9. 对Android中dp单位的理解

    dp 设备独立像素 ,也叫dip, device independent pixle. 比如同样在1英寸大小的屏幕上,高密度的屏幕可显示100个像素点,而低密度的屏幕只能70个点. 用了dp之后,只要 ...

随机推荐

  1. 【BZOJ】2049: [Sdoi2008]Cave 洞穴勘测 LCT

    [题意]给定n个点和m个操作,每次操作:1.连接2个点.2.断开2个点.3.查询2个点是否连通.m<=2*10^5. [算法]Link-Cut Tree [题解]LCT模板题,Link,Cut, ...

  2. 引用类型 ( 对象定义 )——RegExp 类型

    var expression = /pattern/flags; 以上为创建正则表达式格式,斜线包围的为正则表达式,flags 有三个值可以选择 本文地址:http://www.cnblogs.com ...

  3. 【洛谷 P1772】 [ZJOI2006]物流运输(Spfa,dp)

    题目链接 \(g[i][j]\)表示不走在\(i\text{~}j\)时间段中会关闭的港口(哪怕只关\(1\)天)从\(1\)到\(m\)的最短路. \(f[i]\)表示前\(i\)天的最小花费.于是 ...

  4. kali2.0安装虚拟机工具

    kali2.0无法安装虚拟机工具,显示VMware Tools无法用于该虚拟机,或者安装之后无法进行复制.粘贴等操作. 解决办法: step1: 更换源 root@starnight:~# vim / ...

  5. 2017ACM暑期多校联合训练 - Team 7 1002 HDU 6121 Build a tree (深搜+思维)

    题目链接 Problem Description HazelFan wants to build a rooted tree. The tree has n nodes labeled 0 to n− ...

  6. low逼三人组、nb二人组、归并、希尔排序----小结

  7. JS设计模式——4.继承(概念)

    类式继承 0.构造函数 一个简单的Person类 function Person(name){ this.name = name; } Person.prototype.getName = funct ...

  8. AJAX的前世今生与未来

    一.通过三个问答来认识一下Ajax 什么是Ajax? Ajax是Asynchronous Javascript And XML的缩写,它是一种技术. Ajax有什么用? 这一技术能够向服务器请求额外的 ...

  9. java.lang.NoClassDefFoundError: HttpServletRequest

    在eclipse里启动tomcat报错,错误日志:Caused by: java.lang.ClassNotFoundException: HttpServletRequest 在build path ...

  10. 商城项目(ssm+dubbo+nginx+mysql统合项目)总结(2)

    我不会在这里贴代码和详细步骤什么的,我觉得就算我把它贴出来,你们照着步骤做还是会出很多问题,我推荐你们去看一下黑马的这个视频,我个人感觉很不错,一步一步走下来可以学到很多东西.另外,视频和相关文档的话 ...