zoukankan      html  css  js  c++  java
  • DP_基本DP+排序(HDU_1421)

    #include <stdio.h>
    #include <string.DP(3)h>
    #include <alDP(3)gorithm>
    using namespace std;
    
    #define MAX    0x7fffffff
    #define M    (2000 + 5)
    #define ___min(a,b)    (a < b ? a : b)
    #define __pow(a)    ((a) * (a))
    
    int id[M],dp[M][M / 2];
    
    void run()
    {
        int n,k;
        while(scanf("%d%d",&n,&k) != EOF)
        {
            for(int i=1; i<=n; i++)
            {
                scanf("%d",id + i);
            }
            sort(id + 1,id + n + 1);
            memset(dp,0,sizeof(dp));
    
            for(i=2; i<=n; i++)
            {
                for(int j=1; j<=i/2; j++)
                {
                    if(i == 2*j)
                        dp[i][j] = dp[i - 2][j - 1] + __pow(id[i] - id[i -1]);
                    else
                        dp[i][j] = ___min(dp[i - 1][j],dp[i - 2][j - 1] + __pow(id[i] - id[i - 1]));
                }
            }
    
            printf("%d
    ",dp[n][k]);
        }
    
    }
    
    int main(int argc, char* argv[])
    {
        #ifdef __MYLOCAL
        freopen("in.txt","r",stdin);
        #endif
    
        run();
    
        return 0;
    }
  • 相关阅读:
    Seaborn学习笔记2
    Seaborn学习笔记1
    HTML学习笔记4
    HTML学习笔记3
    HTML学习笔记2

    指针与引用
    函数
    字符串
    C++简易
  • 原文地址:https://www.cnblogs.com/lk1993/p/3196784.html
Copyright © 2011-2022 走看看