動態規劃 5倍經驗日

2021-10-10 01:29:33 字數 1014 閱讀 2731

題目鏈結

現在 absi2011 拿出了 x 個迷你裝藥物(嗑藥打人可恥….),準備開始與那些人打了

由於迷你裝乙個只能管一次,所以 absi2011 要謹慎的使用這些藥,悲劇的是,沒到達最少打敗該人所用的屬性藥了他打人必輸》.《所以他用 2 個藥去打別人,別人卻表明 3 個藥才能打過,那麼相當於你輸了並且這兩個屬性藥浪費了。

現在有 n 個好友,有輸掉拿的經驗、贏了拿的經驗、要嗑幾個藥才能打過。求出最大經驗(注意,最後要乘以 5)

第一行兩個數,n 和 x

後面n行每行三個數,分別表示輸了拿到的經驗( lose[i] )、贏了拿到的經驗( win[i] )、打過要至少使用的藥數量( use[i] )。

乙個整數,最多獲得的經驗

輸入6 8

21 52 1

21 70 5

21 48 2

14 38 3

14 36 1

14 36 2

輸出當 absi2011 擁有的迷你裝藥物數量大於或等於最少打敗他人所需的藥物數量時,可以選擇贏或輸,反之,則必輸,因此,狀態轉移方程為:

dp[j] = max(dp[j] + lose[i],dp[j - use[i]] + win[i]) (j ≥ use[i])

dp[j] = dp[j] + lose[i] (j < use[i])

#include

using

namespace std;

const

int n=

1e3+

5,m=

1e6+5;

typedef

long

long ll;

ll n,x,lose[n]

,win[n]

,use[n]

,dp[m]

;int

main()

for(

int i=

0;i)else}}

cout<

}

日記 5倍經驗日 洛谷

現在樂鬥有活動了!每打乙個人可以獲得5倍經驗!absi2011卻無奈的看著那一些比他等級高的好友,想著能否把他們乾掉。乾掉能拿不少經驗的。現在absi2011拿出了x個迷你裝藥物 嗑藥打人可恥 準備開始與那些人打了 由於迷你裝乙個只能管一次,所以absi2011要謹慎的使用這些藥,悲劇的是,沒到達最...

P1802 5倍經驗日

01揹包問題變形 將狀態轉移矩陣改為1維的時候,出現問題 錯 includeusing namespace std define ll long long const int n 1010 int win n lose n use n int f n int n,x int main cout ll...

P1802 5倍經驗日 題解

傳送門 現在樂鬥有活動了!每打乙個人可以獲得5倍經驗!absi2011卻無奈的看著那一些比他等級高的好友,想著能否把他們乾掉。乾掉能拿不少經驗的。現在absi2011拿出了x個迷你裝藥物 嗑藥打人可恥 準備開始與那些人打了 由於迷你裝乙個只能管一次,所以absi2011要謹慎的使用這些藥,悲劇的是,...