hdu 1421 搬寝室

原创 2012年03月26日 19:02:50

先排序。因为相邻的两个数平方肯定是最小的。

然后一个一个地增长DP。判断是否要保留。

DP要注意枚举状态,把全部状态做出来,我们分析的时候容易从一方面切入,但是我们要后面的实现时要全面的枚举。

这题还可以优化一下空间,要滚动数组。

#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int dp[2001][1002];
int a[2002];
int main()
{
    int n,k,i,j;
    while(cin>>n>>k)
    {
        for(i = 1;i <= n;i ++)
        cin>>a[i];
        a[0] = 0;
        sort(a,a+n+1);
        memset(dp,0,sizeof(dp));
        for(i = 1;i <= n;i ++)
        {
            for(j = 1;j<=k&&j*2 <= i;j ++)
            {
                if(j*2 == i)
                dp[i][j] = dp[i-2][j-1] + (a[i] -a[i-1])*(a[i]-a[i-1]);
                else
                dp[i][j] = min(dp[i-2][j-1] + (a[i] -a[i-1])*(a[i]-a[i-1]),dp[i-1][j]);
            }
        }
        cout<<dp[n][k]<<endl;
    }
    


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ACM第6天 Dp进阶HDU 1421 搬寝室

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm...

搬寝室(HDU-1421)

Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,...

hdu1421 搬寝室 (贪心)

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

HDU 1421 搬寝室(DP)

先把物品重量从小到大排序 d[i][j]表示前i件物品选j对的最小疲劳 若选了第i个物品 那么和它一对的必是第i-1个物品 注意是前i件 i=j*2时 没有选择 d[i][j]=d[i-2][...

搬寝室 HDU 1421

状态转移思想:将物品按质量递增排序后,从前i件物品中拿走j对(j*2<=i)时,(1)不拿第i件,则dp[i][j]=dp[i-1][j],这个毫无疑问。(2)拿第i件物品,则第i件物品肯定和第i-1...

HDU1421,搬寝室,java准超时

搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm...

hdu 1421 搬寝室--类背包问题

/* 可以说是背包问题吧:背包容量为k组,从n个中挑k组 因为要平方差最小的,故配组的时候一定是相邻的两个,共有n-1组,求出每组的平方差 所求就变成了从n-1个数中跳k个和最小的(好像挺简单,...

hdu1421搬寝室

hdu1421搬寝室Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件...

hdu1421 搬寝室(dp)

hdu1421 搬寝室(dp)

HDU 1421 搬寝室

http://acm.hdu.edu.cn/showproblem.php?pid=1421 搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memor...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)