题目:搬寝室

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1421

 #include<stdio.h>
#include<algorithm>
using namespace std;
#define N 2100
typedef long long LL;
LL dp[N][N/]; //dp[i][j]: 前 i 件中拿走j对最少疲劳度
LL a[N]; //记录重量
LL fun(LL i,LL j) //一次性搬运第 i 件和第 j 件消耗的疲劳度
{
return (a[j]-a[i])*(a[j]-a[i]);
}
LL min(LL a,LL b)
{
return a>b?b:a;
}
int main()
{
LL n,k;
while(scanf("%I64d%I64d",&n,&k)!=EOF)
{
for(LL i=;i<=n;i++)
{
scanf("%I64d",&a[i]);
}
sort(a,a+n+); //关键的一步,排序,排完序以后每次拿走的某对就肯定是相邻的
for(LL i=;i<=n;i++)
for(LL j=;j<=n/;j++)
dp[i][j]=;
for(LL i=;i<=n;i++) //不管前几件,拿走0对疲劳度肯定为0
dp[i][]=;
dp[][]=fun(,); //前两件取一对疲劳度固定
for(LL i=;i<=n;i++)
{
for(LL j=;j<=i/;j++)
{
dp[i][j]=min(dp[i-][j],dp[i-][j-]+fun(i-,i));
//前i件取j件分两种情况:
//1.第i件不取:那么最佳情况为dp[i-1][j];
//2.第i件取走:那么第j件必然和第j-1件一起拿,那么最佳为dp[i-2][j-1]+fun(i-1,i)
}
}
printf("%I64d\n",dp[n][k]);
}
return ;
}

hdu1421_搬寝室的更多相关文章

  1. B - 搬寝室

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Pract ...

  2. hdu---(1421)搬寝室(dp)

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

  3. HDU 1421 搬寝室

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

  4. 九度OJ 1452 搬寝室 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1452 题目描述: 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3 ...

  5. 搬寝室(HDU 1421 DP)

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

  6. hdu 1421 搬寝室(dp)

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

  7. 搬寝室 hdu

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

  8. 搬寝室(经典dp)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1421 hdu_1421:搬寝室 Time Limit: 2000/1000 MS (Java/Othe ...

  9. Hdoj 1421.搬寝室 题解

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

随机推荐

  1. 【大数据技术】Sqoop

     1.Sqoop是什么 Sqoop:SQL-to-Hadoop,传统数据库与Hadoop间数据同步工具.(MySQL.Oracle <==> HDFS.HBase.Hive) Sqoop ...

  2. Echarts的一些总结

    Echarts是专注做统计图表的插件,其本质是使用canvas进行图表的绘制.而如今它的属性和配置也是越来越丰富.基本的配置很简单,比如饼状图,就是数据和要显示的文字和颜色,柱状图,就是横纵坐标和数据 ...

  3. (转)Spring Boot(二):Web 综合开发

    http://www.ityouknow.com/springboot/2016/02/03/spring-boot-web.html 上篇文章介绍了 Spring Boot 初级教程:Spring ...

  4. RSA简介

    RSA概述 首先看这个加密算法的命名.很有意思,它其实是三个人的名字.早在1977年由麻省理工学院的三位数学家Rivest.Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏 ...

  5. 如何用chrome扩展将网页变成黑底白字,用以保护视力

    不知道有没有科学依据,自己感觉黑底白字对视力好些,于是动手加个chrome扩展: 第一步:建个文件夹,名称比如叫changeColor; 第二步:在changeColor文件夹中建三个文件:manif ...

  6. [ZJOI2012]网络

    嘟嘟嘟 今天复习lct,趁着还年轻多写点数据结构. 首先不得不吐槽一下,题面好长啊-- 通过观察发现,\(c \leqslant 10\).那么就可以暴力的建10棵lct. 接下来说下具体做法: 1. ...

  7. python的格式化输出

    Python的格式化输出有两种: 一.类似于C语言的printf的方法 二.类似于C#的方法

  8. day2 编程语言介绍、Python运行程序的两种方式、变量

    一 编程语言介绍 1. 机器语言 用计算机能理解的二进制指令直接编写程序,直接控制硬件 2. 汇编语言 用英文标签取代二进制指令编写程序,本质也是直接控制硬件 3. 高级语言 用人能理解的表达方式去编 ...

  9. day1 计算机组成、操作系统

    一:编程与编程的目的 1.什么是语言?什么是编程语言? 语言是一个事物与另一个事物沟通的介质. 编程语言是程序员与计算机沟通的介质. 2.什么是编程?为什么要编程? 编程是程序员将自己想要让计算机做的 ...

  10. (七)JavaScript 函数

    带有返回值的函数 JavaScript 变量的生存期 JavaScript 变量的生命期从它们被声明的时间开始. 局部变量会在函数运行以后被删除. 全局变量会在页面关闭后被删除.