經典DP HDU 1421 搬寢室

2021-10-02 03:06:49 字數 751 閱讀 9443

題解:

dp[i][j]代表從i個數中取j對數,首先我們對給定的數排乙個序,使取答案的時候,區域性最優,因為我們有取或者不取兩種狀態,所以當不取的時候我們當前狀態等於上乙個狀態,dp[i-1][j],當取的時候,我們上乙個狀態為dp[i-2][j-1]代表i-2個數取j-1對數加上取的sqr(a[i],a[i-1])

ac**:

#include

#include

#include

using namespace std;

const

int maxn =

2e3+5;

int dp[maxn]

[maxn/2]

;int a[maxn]

;int

sqr(

int x,

int y)

intmain()

sort

(a+1

,a+1

+n);

for(

int i=

2; i<=n; i++)}

printf

("%d\n"

,dp[n]

[k]);}

}

二維DP hdu 1421 搬寢室問題

題目鏈結 題目分析 有n樣東西,需要搬k次,每次搬兩個,搬2 k個 求最少力氣。很明顯絕對值差值越小越好,於是讀入n個物品質量後排序,每乙個物品只有可能與前乙個物品或後乙個物品一起搬,絕對值才是可能當前最小。於是有dp思路,二維dp 陣列 dp i j 表示,到達選擇第i個物品時,已經選了j對成功的...

杭電1421 搬寢室

搬寢室是很累的,xhd深有體會.時間追述2006年7月9號,那天xhd迫於無奈要從27號樓搬到3號樓,因為10號要封樓了.看著寢室裡的n件物品,xhd開始發呆,因為n是乙個小於2000的整數,實在是太多了,於是xhd決定隨便搬2 k件過去就行了.但還是會很累,因為2 k也不小是乙個不大於n的整數.幸...

動態規劃 hdu 1421 搬寢室

problem description 搬寢室是很累的,xhd深有體會.時間追述2006年7月9號,那天xhd迫於無奈要從27號樓搬到3號樓,因為10號要封樓了.看著寢室裡的n件物品,xhd開始發呆,因為n是乙個小於2000的整數,實在是太多了,於是xhd決定隨便搬2 k件過去就行了.但還是會很累,...