时隔多日,又回来啃dp...

题意:有n件物品,搬k次,每搬一个消耗的疲劳值为两件物品重量之差的平方,求最小的疲劳消耗

状态转移方程:dp[i][j] = min((dp[i-2][j-1]+(s[i]-s[i-1])*(s[i]-s[i-1])),dp[i-1][j]);

dp[i][j]表示有i个物品时j次搬运最小的疲劳值

#include<iostream>
#include<cstdio>
#include<algorithm> using namespace std; #define INIT 2147483646 int dp[2222][1111]; int main(){
int i,j,k,n;
int s[2222] = {0};
while(cin>>n>>k){
for(i=1;i<=n;i++)
scanf("%d",s+i);
sort(s+1,s+n+1);
dp[0][0] = 0;
for(i=0;i<=n;i++)
for(j=1;j<=k;j++)
dp[i][j] = INIT;
for(i=2;i<=n;i++)
for(j=1;j*2<=i;j++)
dp[i][j] = min((dp[i-2][j-1]+(s[i]-s[i-1])*(s[i]-s[i-1])),dp[i-1][j]);
cout<<dp[n][k]<<endl;
}
return 0;
}

hdu 1421的更多相关文章

  1. hdu 1421:搬寝室(动态规划 DP + 排序)

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

  2. DP问题(2) : hdu 1421

    题目转自hdu 1421,题目传送门 题目大意: 给你n个物品,你要搬走2*k个(也就是搬k次) 每次搬需要花费v,v=(ai-aj)2 (i表示左手拿的物品重量,j表示右手拿的物品的重量) 要求所有 ...

  3. 【dp】HDU 1421 搬寝室

    http://acm.hdu.edu.cn/showproblem.php?pid=1421 [题意] 给定n个数,要从n个数中选择k个二元组{x,y},最小化sum{(x-y)^2} 2<=2 ...

  4. 题解报告:hdu 1421 搬寝室(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9 ...

  5. HDU 1421 搬寝室 (线性dp 贪心预处理)

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

  6. [HDU 1421]搬寝室(富有新意的DP)

    题目地址:pid=1421" target="_blank">http://acm.hdu.edu.cn/showproblem.php? pid=1421 题目大 ...

  7. HDU 1421 搬寝室

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

  8. HDU 1421 DP

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

  9. 搬寝室(HDU 1421 DP)

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

随机推荐

  1. 关于async & await(TAP)异步模型的异常捕获

    在TAP之前,若要捕获线程中Task的异常,通常有两种办法: 1.阻塞:线程开始后,在适当的时机,调用 wait,或waitAll方法. 2.非阻塞(推荐):在建立任务的时候,写该task的conti ...

  2. 【leetcode❤python】 58. Length of Last Word

    #-*- coding: UTF-8 -*-#利用strip函数去掉字符串去除空格(其实是去除两边[左边和右边]空格)#利用split分离字符串成列表class Solution(object):   ...

  3. Dev gridview新增一行自动获得焦点并打开编辑模式

    1.gridview添加一行自动获得焦点实现方式: 关键代码: GarsonZhang dt.Rows.Add("1", "2"); gridView1.Foc ...

  4. mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?

    原文地址:    http://www.cnblogs.com/stringzero/p/5707467.html 原先对mysql不太理解,但也没有报错.但理解的不够深入.这次补上. 原来以为int ...

  5. ubuntu下mysqli_connect()显示未定义,mysqli_fetch_all()显示未定义 解决方法

    mysqli_connect()显示未定义解决方法: http://www.cnblogs.com/misoag/archive/2013/01/24/2874439.html 让apache.php ...

  6. 统计fastq文件中读段的数量

    mycount=`cat SRR108114_new_1.fastq | wc -l` echo 'Number of clean reads, SRR108114_new_1.fastq: '$(( ...

  7. 序列化、反序列化(实体类或要序列化的对象类必须实现Serializable接口)

    package com.phone.shuyinghengxie; import java.io.Serializable; /* 一个类的对象要想序列化成功,必须满足两个条件: 该类必须实现 jav ...

  8. gastic 安装

    所有文件下载地址: ftp://ftp.broadinstitute.org/pub/GISTIC2.0/ cd /home/software/ tar zxf GISTIC_2_0_22.tar.g ...

  9. plot bar chart using python

    Example import matplotlib.pyplot as plt import plotly.plotly as py # Learn about API authentication ...

  10. git学习笔记12-标签管理-版本

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...