hdu 1421 搬寝室 (DP)
来源:互联网 发布:手机怎么进淘宝直通车 编辑:程序博客网 时间:2024/05/16 11:44
题目意思:
给你一个n和n个数,从中选出k个,使疲劳最小。。
疲劳计算方法:(两手物品质量差的平方)。
分析:先进行排序,只有当拿相邻的两个物品时,才有可能最小。。
典型的DP: dp[ i ] [ j ]=min( dp[ i -1] [ j ] , dp[ i-2 ] [ j-1]+a[i-1]);
dp[i][j]表示:从i个物品中拿j个的最小疲劳值。。
#include<cstdio>#include<algorithm>#include<cstring>#define pow(a) (a)*(a)using namespace std; int dp[2001][1001],a[2001];int n,k;void solve(){memset(dp,0,sizeof(dp));for(int i=2;i<=n;i++){ int r=i/2; for(int j=1;j<=r;j++){if(i==2*j) dp[i][j]=dp[i-2][j-1]+pow(a[i]-a[i-1]);else dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+pow(a[i]-a[i-1])); }}}int main(){while(scanf("%d%d",&n,&k)!=EOF){for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); solve(); printf("%d\n",dp[n][k]);}return 0;}
0 0
- hdu 1421 搬寝室 (DP)
- hdu 题目1421 搬寝室(DP)
- HDU - 1421 搬寝室(经典DP)
- hdu 1421 搬寝室(dp)
- hdu 1421 搬寝室 (DP)
- HDU - 1421 搬寝室 (DP)
- HDU 1421 搬寝室 (dp)
- hdu 1421 搬寝室 (dp)
- hdu 1421 搬寝室 (DP)
- Hdu oj 1421 搬寝室(dp)
- hdu 1421 搬寝室 (DP)
- Hdu 1421 搬寝室 dp
- hdu 1421 搬寝室(DP)
- hdu 1421 搬寝室 dp
- HDU-1421 搬寝室-dp
- HDU 1421搬寝室 DP
- HDU 1421 搬寝室 DP
- hdu 1421 搬寝室(dp)
- 在liferay6.2下生成jsf portlets 并完成部署
- IOS绘图
- 改变文件或目录权限命令:chmod
- Android 软件盘 弹出和隐藏的处理
- MySQL 不支持 top n,改用 limit
- hdu 1421 搬寝室 (DP)
- C#中as是什么含义?is是什么含义?
- android 浏览器插件开发 - Log
- 验证TimesTen统计收集后SQL重新编译
- HDU 4823 &&HDU 4826 百度之星资格赛的两道简单题。。。
- c++ 虚函数的实现机制
- 《Java NIO》读书笔记
- 一个冒泡排序
- android 浏览器插件开发 - 流程(1)