HDU1421 搬寢室 動態規劃

2021-06-26 16:47:03 字數 809 閱讀 5146

動態規劃題

題意是輸入兩個整數n和k,表示從n件物品中搬走k對(每次左右手各搬一件),已知每件物品的疲勞值,求搬走k對後的最小疲勞度。

每個物品的疲勞度用ans存起來,很明顯,把ans按公升序排序後每相鄰兩個物品的疲勞度都是最小的;

然後定義陣列dp【i】【j】表示從前i件物品中搬走j對的總疲勞度,則對於第i件物品:

(1)如果搬走第i件,那麼一定也要搬走第i-1件物品,不然第i件物品和誰配對呢,同時從前i-2件物品中搬走j-1對,

此時dp【i】【j】=dp【i-2】【j-1】+(ans【i】-ans【i-1】)^2;

(2)如果不搬走第i件物品,那麼就等於從前i-1件物品裡面搬走j對物品了,即dp【i】【j】=dp【i-1】【j】;

顯然狀態轉移方程:dp【i】【j】=min(dp【i-2】【j-1】+(ans【i】-ans【i-1】)^2,dp【i-1】【j】);

#include

#include

#include

#define max 2100

#define inf 999999999

using namespace std;

int ans[max],dp[max][max/2];

int main()

return 0;

}

動態規劃 hdu 1421 搬寢室

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

HDU 1421 搬寢室 動態規劃

description 胡老師馬上要搬新家了,可是搬家真的是乙個很累的活,看著家裡的n件物品,胡老師已經凌亂了,因為物品實在太多。於是胡老師想了又想,決定先隨便搬2 p件過去就行了。現在,胡老師發現每搬一次的疲勞度是和左右手的物品的重量差的平方成正比,每次左手一件右手一件 如果胡老師左手拿重量為3的...

(動態規劃)HDU1421搬寢室

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