HDU1424搬寝室
来源:互联网 发布:大数据人工智能培训 编辑:程序博客网 时间:2024/05/22 02:01
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1421
状态Dp[i][j]为前i件物品选j对的最优解
当i=j*2时,只有一种选择即 Dp[i-2][j-1]+(w[i]-w[i-1])^2
当i>j*2时,Dp[i][j] = min(Dp[i-1][j],Dp[i-2][j-1]+(w[j]-w[j-1])^2)
#include<cstdio>#include<algorithm>using namespace std;#define min(x,y) (x)<(y)?(x):(y)int a[2005];int dp[2005][2005/2];void work(int n,int k){int i,j;dp[0][0] = 0;//当取0件的时候所耗费的精力为0for(i = 2; i <= n; i++){dp[i][0] = 0;for(j = 1; j <= i/2 ; j++)if(i -1 >= j*2)//当i-1>= j*2的时候dp[i][j] = min(dp[i-1][j],dp[i-2][j-1]+(a[i-1]-a[i])*(a[i-1]-a[i]));else//当i-1< j*2的时候dp[i][j] = dp[i-2][j-1] + (a[i-1]-a[i])*(a[i-1]-a[i]);}printf("%d\n",dp[n][k]);//输出最小的疲劳度。}int main(){int n,k,i;while(~scanf("%d%d",&n,&k)){for(i = 1; i <= n; i++)//输入数据,输入从1开始。scanf("%d",a+i);sort(a+1,a+n+1);//将元素从小到大进行排序。work(n,k);}return 0;}
- HDU1424搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- 搬寝室
- java 继承和多态 抽象类和接口
- 挂接在/sys上的对LED灯控制的驱动
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Linux内核抢占实现机制分析
- 线性表的使用
- 国产InitPHP框架系列 - InitPHP3.2.1 发布
- HDU1424搬寝室
- 文件夹删除/清空
- SQL语句 SELECT LIKE用法详解
- a和&a有什么区别
- SQL SERVER error:40 错误:53
- USACO Section 1.3
- 基础备忘:友元——友元函数,友元成员,友元类
- HDU1558 Segment set(计算几何+并查集)
- Linux下32位和64位机整数数据类型