zoukankan      html  css  js  c++  java
  • hdu 1421 搬寝室

    搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k件过去就行了.但还是会很累,因为2*k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,则他搬完这次的疲劳度为(6-3)^2 = 9.现在可怜的xhd希望知道搬完这2*k件物品后的最佳状态是怎样的(也就是最低的疲劳度),请告诉他吧.
     

     

    Input
    每组输入数据有两行,第一行有两个数n,k(2<=2*k<=n<2000).第二行有n个整数分别表示n件物品的重量(重量是一个小于2^15的正整数).
     

     

    Output
    对应每组输入数据,输出数据只有一个表示他的最少的疲劳度,每个一行.
     

     

    Sample Input
    2 1
    1 3

    // 思想类似于HDU 1024 Max Sum Plus Plus

    //这题的空间也可以像那题一样压缩!

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    bool
    cmp(int a,int b)
    {

       return
    a<b;
    }

    int
    a[2003];
    int
    dp[2001][1001];
    int
    main()
    {

         int
    n,k,i,j,sum;
         while
    (scanf("%d%d",&n,&k)!=EOF)
         {

             for
    (i=1;i<=n;i++)
                 scanf("%d",&a[i]);
             sort(a+1,a+n+1,cmp);
             //for(i=1;i<=n;i++)
            //     printf("%d ",a[i]);
             for(i=1;i<n;i++)
               a[i]=(a[i+1]-a[i])*(a[i+1]-a[i]);

             dp[2][1]=a[1];

             for
    (i=3;i<=n;i++)
                 dp[i][1]=dp[i-1][1]<a[i-1]?dp[i-1][1]:a[i-1];
            
             for
    (j=2;j<=k;j++)
             {

                  sum=0;
               for
    (i=1;i<2*j;i+=2)
                   sum+=a[i];
               dp[j*2][j]=sum;
                  sum=j*2;
               for
    (i=sum+1;i<=n;i++)
                 dp[i][j]=dp[i-2][j-1]+a[i-1]<dp[i-1][j]?dp[i-2][j-1]+a[i-1]:dp[i-1][j];
             }

            printf("%d\n",dp[n][k]);
         }

         return
    0;
    }

  • 相关阅读:
    如何将CentOS的默认启动界面修改为图形界面or字符界面
    如何将CentOS的默认启动界面修改为图形界面or字符界面
    virtualbox下CentOS7安装增强功能
    蓝牙4.0
    HC-SR04超声波测距
    STM32F407 通用同步异步收发器(串口)
    STM32F4 TIM(外设定时器)
    STM32F4 系统定时器
    STM32F4 异常与中断
    LED和按键实验
  • 原文地址:https://www.cnblogs.com/372465774y/p/2442885.html
Copyright © 2011-2022 走看看