易得每两个点之间建立邮局的最好位置两点最中间的点,两点之间如果没有奇数个数的点中间两个点都可以...(自己画一下图可以看出随着右边点的增大最佳点的增大非常平滑...强迫症一本满足)
 
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】2553: [BeiJing2011]禁忌 AC自动机+期望+矩阵快速幂

    [题意]给定n个禁忌字符串和字符集大小alphabet,保证所有字符在集合内.一个字符串的禁忌伤害定义为分割能匹配到最多的禁忌字符串数量(一个可以匹配多次),求由字符集构成的长度为Len的字符串的期望 ...

  2. ADO.NET中带参数的Sql语句的陷阱

    1.使用Parameter //利用构造函数方式 ,不推荐这样写 Parameter p =new Parameter("@id",值); cmd.Parameters.Add(p ...

  3. Findbugs插件安装与使用

    FindBugs 是由马里兰大学提供的一款开源 Java静态代码分析工具.FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析.FindBug ...

  4. 面试整理(2)跨域:jsonp与CORS

    问题:跨域有哪些方法?jsonp的原理是什么? jsonp: 先说jsonp,jsonp的主要原理是利用script标签的src可以跨域请求,据说有src属性的都可以跨域请求,但script标签返回的 ...

  5. 吐泡泡(2018年全国多校算法寒假训练营练习比赛(第二场)+栈模拟)+Plug-in(codeforces81A+栈模拟)

    吐泡泡题目链接:https://www.nowcoder.com/acm/contest/74/A 题目: 思路: 这种题目当初卡了我很久,今天早训时遇到一个一样得题,一眼就想到用栈模拟,就又回来把这 ...

  6. lintcode 443.岛屿的个数

    在v2ex上看到有人提到了这个,感觉挺简单的,没忍住还是试一下.... 基本的染色法. AC代码: public class Solution { /** * @param grid a boolea ...

  7. Sublime之插件的安装(二)

    前不久的文章里面,有讲过关于sublime插件的具体的安装,这里就不多说了~ 在使用sublime进行打开html页面的时候,是不是经常右击-->view in brower,是不是用多了感觉很 ...

  8. 分布式队列Celery入门

    Celery 是一个简单.灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具.它是一个专注于实时处理的任务队列,同时也支持任务调度.Celery 是语言无关的,虽然它是用 Py ...

  9. 56.Merge Intervals---贪心---《编程之美》2.19区间重合判断

    题目链接:https://leetcode.com/problems/merge-intervals/description/ 题目大意:给出一串list,里面装interval类,这个类里有star ...

  10. c++各种排序的简单实现

    /* 直插排序 */ void InsertSort(vector<int> &arr){ for(int i = 1;i < arr.size();++i){ for(in ...