• HDOJ 1421 搬寝室


    1,按大小顺序帮最小
    2,dp[i][j]   前 i 件物品搬 j 对
    3,dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+POW2(a[i-1],a[i]);
    4,dp[i][i>>1]=dp[i-2][i>>1-1]+POW2(a[i-1],a[i]);

    搬寝室

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 12181    Accepted Submission(s): 4074


    Problem Description
    搬寝室是很累的,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 11 3
     
    Sample Output
    4
     
    Author
    xhd
     
    Source
     
    Recommend
    lcy
     
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 
     5 #define POW2(a,b)   ((a)-(b))*((a)-(b))
     6 
     7 int a[2222];
     8 int d[2222][1111];
     9 
    10 using namespace std;
    11 
    12 int main()
    13 {
    14     int n,k;
    15     while(cin>>n>>k)
    16     {
    17         for(int i=1;i<=n;i++)
    18             cin>>a[i];
    19         sort(a+1,a+1+n);
    20 
    21         for(int i=0;i<=n;i++)
    22             d[i][0]=0;
    23 
    24         d[2][1]=POW2(a[1],a[2]);
    25         for(int i=3;i<=n;i++)
    26         {
    27             for(int j=1;2*j<=i;j++)
    28             {
    29                 d[i][j]=min(d[i-1][j],d[i-2][j-1]+POW2(a[i-1],a[i]));
    30             }
    31             if(~i&1)
    32             d[i][i>>1]=d[i-2][i/2-1]+POW2(a[i-1],a[i]);
    33         }
    34 
    35         cout<<d[n][k]<<endl;
    36 
    37     }
    38     return 0;
    39 }
  • 相关阅读:
    错题记录——关于Java中private的用法(类与封装)
    深度学习-人脸识别-数据集和制作
    UE4使用经验记录
    pycharm 一直索引或索引过大占用系统盘问题
    深度学习portoch笔记_概念随笔
    mysql 找不到请求的 .Net Framework Data Provider。可能没有安装。
    halcon崩溃/异常信号11 后文件临时存储路径
    halcon 错误记录
    visual studio 2012 C#exe嵌入到子窗口,程序退出后子exe文件仍然被占用
    文件操作
  • 原文地址:https://www.cnblogs.com/CKboss/p/3086707.html
Copyright © 2020-2023  润新知