hdu 1421 搬寝室 (dp)
来源:互联网 发布:韩服lol账号购买淘宝 编辑:程序博客网 时间:2024/04/30 02:00
思路分析:
dp[i][j] 表示选取到第 i 个 组成了 j 对的最优答案。
当然排序之后 选取相邻两个是更优的。
if(i==j*2) dp[i][j] = dp[i-2][j-1] + w[i]-w[i-2]^2..
else if( i> j*2 ) dp[i][j] = min (dp[i-2][j-1] + ...^2 , dp[i-1][j])....
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <set>#include <vector>#define maxn 30005using namespace std;int dp[2005][1005];int a[2005];int sqr(int x){ return x*x;}int main(){ int n,k; while(scanf("%d%d",&n,&k)!=EOF) { for(int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+1+n); memset(dp,0x3f,sizeof dp); for(int i=0;i<=n;i++)dp[i][0]=0; for(int i=2;i<=n;i++) { for(int j=0;2*j<=i;j++) { if(i==j*2)dp[i][j]=min(dp[i][j],dp[i-2][j-1]+sqr(a[i]-a[i-1])); else if(i>j*2){ dp[i][j]=min(dp[i][j],min(dp[i-1][j],dp[i-2][j-1]+sqr(a[i]-a[i-1]))); } } } 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)
- Sprite Kit游戏:砸死臭虫 Smash Bug!
- exit、_exit,return的区别
- 每日一dp(1)——Largest Rectangle in a Histogram(poj 2559)使用单调队列优化
- msp430f149+外设tlv61612位DA转换模块
- 【140810】VC2008实现VC.NET麻将游戏
- hdu 1421 搬寝室 (dp)
- [ZOJ 3315] Runaway Robot [枚举]
- AJAX基础知识
- Rails4.1:Active Record Basics
- awk技巧
- PKU 3468 线段树,线段树 第 3 天
- 开博纪念:雁过留声
- spin_lock与mutex_lock
- hdu 1009 FatMouse' Trade