zoukankan      html  css  js  c++  java
  • hdu 1421经典dp

    #include<stdio.h>
    #include<stdlib.h>
    #define N 2001
    #define inf 0x3fffffff
    int a[N],dp[N][N];
    int Min(int v,int vv) {
    return v>vv?vv:v;
    }
    int cmp(const void *a,const void *b) {
    return *(int *)a-*(int *)b;
    }
    int main() {
       int n,k,i,j;
       while(scanf("%d%d",&n,&k)!=EOF) {
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        qsort(a+1,n,sizeof(a[0]),cmp);
        for(i=1;i<=n;i++)
    if((i+1)%2==0)
             dp[i][(i+1)/2]=inf;//这里主要是初始化下面的程序是偶数的情况
        for(i=0;i<=n;i++)
            dp[i][0]=0;
        for(i=2;i<=n;i++)
            for(j=1;j*2<=i;j++)
            dp[i][j]=Min(dp[i-1][j],dp[i-2][j-1]+(a[i-1]-a[i])*(a[i-1]-a[i]));
            printf("%d
    ",dp[n][k]);
       }
    return 0;}
    
    /*
    下面这个更巧妙,很棒!!!!,初始化很简单
    #include <iostream>
    #include <algorithm>
    using namespace std ;
    int dp[2001][1001],w[2001] ;
    bool cmp(int a,int b)
    {
        return a<b ;
    }
    int main()
    {
        int n,k ;
        while(~scanf("%d%d",&n,&k))
        {
            for(int i=1;i<=n;i++)
                scanf("%d",&w[i]) ;
            sort(w+1,w+n+1,cmp) ;
           for(i=0;i<=n;i++)
             dp[i][0]=0;//将所有的i,0出事为0即可
            for(int i=2;i<=n;i++)
                for(int j=1;(j<<1)<=i;j++)
                {
                    if(i==(j<<1))//当前为i是因为是偶数所以dp[i-1][j]中i-1<j*2的所以不存在这种情况默认为无穷
                        dp[i][j]=dp[i-2][j-1]+(w[i]-w[i-1])*(w[i]-w[i-1]) ;
                    else //否则就要考虑这种情况,因为i=5,j=2时i=4,j=2是存在的,
                        dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(w[i]-w[i-1])*(w[i]-w[i-1])) ;
                }
            printf("%d
    ",dp[n][k]) ;
        }
        return 0 ;
    }
    */

  • 相关阅读:
    Java集合分析
    数据结构之红黑树
    数据结构之二叉查找树
    数据源 连接oracle
    Android使用jxl快速生成Excel表
    Java 条形码 二维码 的生成与解析
    setPreferredSize和setSize的区别及用法
    JAVA学习Swing章节布局管理器简单学习 补充(第四种布局理解)
    swing外观框架
    Java 实现ftp 文件上传、下载和删除
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410530.html
Copyright © 2011-2022 走看看