動態規劃 dp

2021-06-22 21:47:25 字數 1136 閱讀 2504

威威貓系列故事――打地鼠

威威貓最近不務正業,每天沉迷於遊戲「打地鼠」。

每當朋友們勸他別太著迷遊戲,應該好好工作的時候,他總是說,我是威威貓,貓打老鼠就是我的工作!

無話可說...

我們知道,打地鼠是一款經典小遊戲,規則很簡單:每隔乙個時間段就會從地下冒出乙隻或多隻地鼠,玩遊戲的人要做的就是打地鼠。

假設:1、每乙個時刻我們只能打乙隻地鼠,並且打完以後該時刻出現的所有地鼠都會立刻消失;

2、老鼠出現的位置在一條直線上,如果上乙個時刻我們在x1位置打地鼠,下乙個時刻我們在x2位置打地鼠,那麼,此時我們消耗的能量為abs( x1 - x2 );

3、打第一只地鼠無能量消耗。

現在,我們知道每個時刻所有冒出地面的地鼠位置,若在每個時刻都要打到乙隻地鼠,請計算最小需要消耗多少能量。

input

輸入資料報含多組測試用例;

每組資料的第一行是2個正整數n和k(1 <= n <= 20, 1 <= k <= 10 ),表示有n個時刻,每個時刻有k只地鼠冒出地面;

接下來的n行,每行表示乙個時刻k只地鼠出現的座標(座標均為正整數,且<=500)。

output

請計算並輸出最小需要消耗的能量,每組資料輸出一行。

sample input

2 21 10

4 93 5

1 2 3 4 5

2 4 6 8 10

3 6 9 12 15

sample output

1

1

動態轉移方程:dp[i][j]記錄的是打當前地鼠所消耗的最少能量

dp[i][j]=mink屬於(0~k)

#include#include#include#includeusing namespace std;

int main()

{ int n,k,s[22][15],i,j,k,dp[22][15],min;

while(scanf("%d%d",&n,&k)!=eof)

{for(i=0;i

動態規劃,dp

線性動規區間動規樹形動規 區間動規 根據題目要求,全域性最優滿足區域性最優 典型題例 加分二叉樹 洛谷1040 題目介紹 題目描述 設乙個n 個節點的二叉樹t 的中序遍歷為 1,2,3,n 其中數字 1,2,3,n 為節點編號。每個節點都有乙個分數 均為正整數 記第j 個節點的分數為dj。二叉樹t ...

DP動態規劃

include include include include include include includeusing namespace std 動態規劃 利用子問題求解整個問題 關鍵 記錄子問題的解 列出狀態轉移方程 寫法 遞推 由邊界向上,最終得到目標問題的解 遞迴 由目標問題出發,向下遞迴...

動態規劃(DP)

有n個重量和價值分別為wi和vi的物品。從這些物品中挑選出總質量不超過w的物品,求所有挑選方案中質量和的最大值。如果我去模擬一下這個問題 每個物品都可以選擇或不選擇。假設我從第i個物品挑選總重量小於j的物品 int rec int i,int j rec i 1,j 表示不選擇第i個物品 rec i...