//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. apk瘦身(包大小优化)

    最近太忙好久没有写随笔,放假才有空写写随笔. 最近在项目中一直在做包大小优化 随着业务需求的增加,包大小是忍不住的往上涨 为了提高应用市场下载转化率,一直在优化包大小 首先 分析你的apk中占比的主要 ...

  2. spring3-hibernate3整合

    Spring与Hibernate整合关键点: 1) Hibernate的SessionFactory对象交给Spring创建: 2) hibernate事务交给spring的声明式事务管理. SH整合 ...

  3. Android开发--Button的应用

    1.Button的创建 Button的创建和TextView类似,包含按钮的ID,宽度,高度,提示(即按钮上的文本内容).

  4. JS模块式开发

    问题:js文件须严格保证加载顺序(比如上例的1.js要在2.js的前面),依赖性最大的模块一定要放到最后加载,当依赖关系很复杂的时候,代码的编写和维护都会变得困难! C语言中模块开发-include ...

  5. [工程备案]linux基本命令以及C和C++编程

    whereis 查看程序安装在了哪里 where 产看运行程序在哪里. libtool --mode=link  g++ test.cpp  -o test  libSegmentorForSim2T ...

  6. kafka consumer属性

    consumer属性 group.id:指定consumer group的唯一标识. consumer.id:唯一标识consumer.默认值为null,不指定时会自动生成. zookeeper.co ...

  7. dll和ocx比较

    ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾:ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合. 一.关于DLL的介绍 ...

  8. [示例]创建Student类,输入学生信息并存入字典,将3个存有学生信息的字典存入数组,并计算

    代码: main: #import <Foundation/Foundation.h> #import "Student.h" int main(int argc, c ...

  9. js中的运算符优先级顺序

    js中运算符优先级从高到底的顺序: 算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号

  10. C#中三种定时器对象的比较

    ·关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers ...