小公尺OJ 85 搶劫! 動態規劃

2021-08-28 15:16:39 字數 647 閱讀 8905

描述

你是一名專業劫匪,並且正在計畫搶劫一條街道上的所有房子。每個房子有一定數量的現金。 唯一能夠阻止你的就是安保系統被觸發,當有兩個相鄰的房子在同一晚被劫時,安保系統才會自動觸發。 現在給你乙個正整數陣列表示每家現金數,請求出這一晚你能在不觸發安保系統時搶到的最大金額。

輸入由逗號(,)分隔的一串正整數,表示這一條街上每個房子內的現金數。

輸出乙個正整數,表示你能搶到的最大金額。

輸入樣例

1,2
輸出樣例

2
題解:f[i] 表示到第 i 間房子的時候所搶到的最大金額。很明顯,對於每間房子都有兩種選擇,即搶或者不搶,容易得遞推式為:f[i] = max(f[i-2]+a[i], f[i-1])。

#include #include using namespace std;

int a[1000000], f[1000000];

int main()

int ans = 0 ;

f[0] = a[0], f[1] = max(a[0], a[1]);

for(int i = 2; i < id; i++)

cout << f[id-1] <}

return 0;

}

小公尺 oj 硬幣比賽(思維 動態規劃 博弈)

序號 47難度 困難時間限制 1000ms記憶體限制 10m 描述有 n 個不同價值的硬幣排成一條線。有 a 與 b 兩個玩家,指定由 a 開始輪流 a 先手,然後 b,然後再 a.從左邊依次拿走 1 或 2 個硬幣 不能不拿,也不能拿其他個數 直到沒有硬幣為止。最後計算 a 與 b 分別拿到的硬幣...

leetcode 198強盜搶劫(動態規劃)

題目 你是乙個專業的強盜,計畫在街上搶劫房屋。每個房子都藏著一定數量的錢,阻止你搶劫他們的唯一限制因素是相鄰的房屋有連線的安全系統,如果兩個相鄰的房子在同乙個晚上被闖入,它將自動聯絡 給出乙個代表每個房子的金額的非負整數列表,確定今晚可以搶劫的最大金額而不警告警察。input 2,7,9,3,1 o...

小公尺oj 有多少個等差數列(動態規劃)

序號 20難度 困難時間限制 500ms記憶體限制 10m 描述等差數列是常見數列的一種,如果乙個數列從第二項起,每一項與它的前一項的差等於同乙個常數,這個數列就叫做等差數列,而這個常數叫做等差數列的公差,公差常用字母d表示。即對於數列s,它滿足了 s i s i 1 d i gt 1 s i s ...