//Accepted    564 KB    63 ms
 //和hdu1227一样
 //dp[i][j]=min(dp[i][j],dp[k][j-1]+cost[k+1][i])
 //初始化条件,dp[0][0]=0;
 //dp[i][0]=inf;i>=1;
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 ;
 ;
 ;
 int cost[imax_n][imax_n];
 int dp[imax_n][imax_P];
 int dis[imax_n];
 int n,P;
 int tabs(int x)
 {
     ) x=-x;
     return x;
 }
 int min(int a,int b)
 {
     return a<b?a:b;
 }
 void getCost()
 {
     ;i<=n;i++)
     {
         for (int j=i;j<=n;j++)
         {
             cost[i][j]=;
             ;
             for (int k=i;k<=j;k++)
             cost[i][j]+=tabs(dis[k]-dis[temp]);
         }
     }
 }
 void Dp()
 {
     getCost();
     ;i<=n;i++)
     ;j<=P;j++)
     dp[i][j]=inf;
     dp[][]=;
     ;i<=n;i++)
     {
         ;j<=P && j<=i;j++)
         {
             ;k<i;k++)
             {
                 dp[i][j]=min(dp[i][j],dp[k][j-]+cost[k+][i]);
             }
         }
     }
     printf("%d\n",dp[n][P]);
 }
 int main()
 {
     while (scanf("%d%d",&n,&P)!=EOF)
     {
         ;i<=n;i++)
         scanf("%d",&dis[i]);
         Dp();
     }
     ;
 }
 //Accepted    564 KB    79 ms
 #include <cstdio>
 #include <cstring>
 #include <iostream>
 using namespace std;
 ;
 ;
 ;
 int cost[imax_n][imax_n];
 int dp[imax_n][imax_P];
 int dis[imax_n];
 int n,P;
 int tabs(int x)
 {
     ) x=-x;
     return x;
 }
 int min(int a,int b)
 {
     return a<b?a:b;
 }
 void getCost()
 {
     ;i<=n;i++)
     {
         for (int j=i;j<=n;j++)
         {
             cost[i][j]=;
             ;
             for (int k=i;k<=j;k++)
             cost[i][j]+=tabs(dis[k]-dis[temp]);
         }
     }
 }
 void Dp()
 {
     getCost();
     ;i<=n;i++)
     dp[i][]=inf;
     dp[][]=;
     ;i<=n;i++)
     {
         ;j<=P && j<=i;j++)
         {
             dp[i][j]=inf;
             ;k<i;k++)
             {
                 dp[i][j]=min(dp[i][j],dp[k][j-]+cost[k+][i]);
             }
         }
     }
     printf("%d\n",dp[n][P]);
 }
 int main()
 {
     while (scanf("%d%d",&n,&P)!=EOF)
     {
         ;i<=n;i++)
         scanf("%d",&dis[i]);
         Dp();
     }
     ;
 }

poj1160 dp的更多相关文章

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

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

  2. POJ1160 Post Office[序列DP]

    Post Office Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18680   Accepted: 10075 Des ...

  3. 石子合并(四边形不等式优化dp) POJ1160

    该来的总是要来的———————— 经典问题,石子合并. 对于 f[i][j]= min{f[i][k]+f[k+1][j]+w[i][j]} From 黑书 凸四边形不等式:w[a][c]+w[b][ ...

  4. POJ-1160 Post Office (DP+四边形不等式优化)

    题目大意:有v个村庄成直线排列,要建设p个邮局,为了使每一个村庄到离它最近的邮局的距离之和最小,应该怎样分配邮局的建设,输出最小距离和. 题目分析:定义状态dp(i,j)表示建设 i 个邮局最远覆盖到 ...

  5. POJ1160 Post Office (四边形不等式优化DP)

    There is a straight highway with villages alongside the highway. The highway is represented as an in ...

  6. [POJ1160] Post Office [四边形不等式dp]

    题面: 传送门 思路: dp方程实际上很好想 设$dp\left[i\right]\left[j\right]$表示前$j$个镇子设立$i$个邮局的最小花费 然后状态转移: $dp\left[i\ri ...

  7. POJ1160 Post Office-四边形不等式优化DP

    方程 $\Large f(i,j)=min(f(i-1,k)+w(k+1,j))$ 其中$w(i,j)$表示在$[i,j]$的村庄都去一个邮局的最小距离和 证明w满足四边形不等式 设$w_k(i,j) ...

  8. 【poj1160】 Post Office

    http://poj.org/problem?id=1160 (题目链接) 题意 按照递增顺序给出一条直线上坐标互不相同的n个村庄,要求从中选择p个村庄建立邮局,每个村庄使用离它最近的那个邮局,使得所 ...

  9. DP总结 ——QPH

    常见优化 单调队列 形式 dp[i]=min{f(k)} dp[i]=max{f(k)} 要求 f(k)是关于k的函数 k的范围和i有关 转移方法 维护一个单调递增(减)的队列,可以在两头弹出元素,一 ...

随机推荐

  1. 使用node js 操作 Mysql 数据库

    使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...

  2. 解决PhoneGap不支持viewport的几种方法

    前几天用phonegap编译GameBuilder+CanTK时,发现HTML里的viewport无效.CanTK根据devicePixelRatio检测设备的DPI,然后用viewport设置正确的 ...

  3. python 练习 5

    #!/usr/bin/python # -*- coding: utf-8 -*- from collections import deque def z69(): '''猜牌术(1) 魔术师,最上面 ...

  4. Linux内核零碎知识

    UNIX系统:内核.shell外壳.文件系统.工具或应用程序. 操作系统功能:进程与处理机管理.存储管理.设备管理.作业管理.文件管理. 内存是磁盘的缓存,cache是内存的缓存. 可把内核看作是不断 ...

  5. stackview

    Stack View会被当成Container View.所以它是一个不会被渲染的UIView子类.它不像其他UIView子类一样,会被渲染到屏幕上.这也意味着设置其backgroundColor属性 ...

  6. iOS App从点击到启动

    程序启动之前 从exec()开始 main()函数是整个程序的入口,在程序启动之前,系统会调用exec()函数.在Unix中exec和system的不同在于,system是用shell来调用程序,相当 ...

  7. poj1122 FDNY to the Rescue!(dij+反向建图+输出路径)

    题目链接:poj1122 FDNY to the Rescue! 题意:给出矩阵,矩阵中每个元素tij表示从第i个交叉路口到第j个交叉路口所需时间,若tij为-1则表示两交叉路口之间没有直接路径,再给 ...

  8. 转载,javascript 设计模式

    了解JavaScript设计模式我们需要知道的一些必要知识点:(内容相对基础,高手请跳过) 闭包:关于闭包这个月在园子里有几篇不错的分享了,在这我也从最实际的地方出发,说说我的理解. 1.闭包最常用的 ...

  9. Android TextView标签的显示

    在默认情况下,如果一个TextView中的文字太多,会跨行显示, 通过下面两个参数的设置,可以使TextView固定显示一行,未显示完成的后面用...... android:maxLines=&quo ...

  10. 关于call和apply的那点事儿

    在JavaScript中改变闭包中的this关键字中经常用到的就是call和apply了 首先:call和apply的作用的区别是什么? 答:call和apply 的作用是相同的.都是用来改变函数th ...