揹包dp 小明打聯盟

2021-10-25 07:47:32 字數 1051 閱讀 8866

這個題是乙個完全揹包問題,對於大招,我們有三種選擇:l,l

+i,r

l, l + i, r

l,l+i,

r,最終的方案中l+i

l + i

l+i最多出現一次,於是先用前三個

物品+l

+r

前三個物品+l + r

前三個物品+

l+r這五個物品跑完全揹包,然後用l+i

l + i

l+i更新一遍dp[

v]

dp[v]

dp[v

]

#include

using

namespace std;

typedef

long

long ll;

//三年競賽一場空,不開long long見祖宗

//typedef __int128 lll;

#define print(i) cout << "debug: " << i << endl

#define close() ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)

#define mem(a, b) memset(a, b, sizeof(a))

#define pb(a) push_back(a)

#define x first

#define y second

typedef pair<

int,

int> par;

const ll mod =

1e9+7;

const

int maxn =

1e5+10;

const

int inf =

0x3f3f3f3f

;ll v;

ll val[10]

, cost[10]

;ll dp[maxn]

;int

main()

cout << dp[v]

<< endl;

}}

牛客 小明打聯盟 揹包dp

小明很喜歡打遊戲,現在已知乙個新英雄即將推出,他同樣擁有四個技能,其中三個小技能的釋放時間和固定的傷害值為 他還有乙個大招,其釋放的時間是乙個區間 l,r 可以在區間內任意時間點釋放出技能,其如果在l i時刻釋放技能,其能夠打出的傷害值為 temp a i 這裡temp值表示技能的基礎傷害 同時也就...

小明打聯盟 斜率 單調佇列 優化dp 揹包

題目描述 小明很喜歡打遊戲,現在已知乙個新英雄即將推出,他同樣擁有四個技能,其中三個小技能的釋放時間和固定的傷害值為 他還有乙個大招,其釋放的時間是乙個區間 l,r 可以在區間內任意時間點釋放出技能,其如果在l i時刻釋放技能,其能夠打出的傷害值為 temp a i 這裡temp值表示技能的基礎傷害...

揹包 DP 揹包

揹包 題目 是dp中較為常見的題目 分為 0 1 揹包 完全揹包 和多重揹包 這三類 是越來越深入的首先來介紹一下 0 1揹包 首先 0 1 揹包的含義是 給你乙個容量位m的揹包 然後給你n個物品 每個物品具有一定價值和一定重量 會站一定的揹包空間 答案是在n個物品中那幾個 然後使得到的價值最大 首...