P1802 5倍經驗日 【DP】
題目背景
現在樂鬥有活動了!每打一個人可以獲得5倍經驗!absi2011卻無奈的看著那一些比他等級高的好友,想著能否把他們幹掉。幹掉能拿不少經驗的。
題目描述
現在absi2011拿出了x個迷你裝藥物(嗑藥打人可恥….),準備開始與那些人打了
由於迷你裝一個只能管一次,所以absi2011要謹慎的使用這些藥,悲劇的是,沒到達最少打敗該人所用的屬性藥了他打人必輸>.<所以他用2個藥去打別人,別人卻表明3個藥才能打過,那麼相當於你輸了並且這兩個屬性藥浪費了。
現在有n個好友,有輸掉拿的經驗、贏了拿的經驗、要嗑幾個藥才能打過。求出最大經驗(注意,最後要乘以5)
輸入格式
第一行兩個數,n和x
後面n行每行三個數,分別表示輸了拿到的經驗(lose[i])、贏了拿到的經驗(win[i])、打過要至少使用的藥數量(use[i])。
輸出格式
一個整數,最多獲得的經驗
輸入輸出樣例
輸入 #1
6 8
21 52 1
21 70 5
21 48 2
14 38 3
14 36 1
14 36 2
輸出 #1
1060
說明/提示
【Hint】
五倍經驗活動的時候,absi2011總是吃體力藥水而不是這種屬性藥>.<
【資料範圍】
對於10%的資料,保證x=0
對於30%的資料,保證n<=10,x<=20
對於60%的資料,保證n<=100,x<=100, 10<=lose[i], win[i]<=100,use[i]<=5
對於100%的資料,保證n<=1000,x<=1000,0<lose[i]<=win[i]<=1000000,0<=use[i]<=1000
【題目來源】
fight.pet.qq.com
absi2011授權題目
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long ll;
const int maxn = 1e4;
ll dp[maxn];
ll win[maxn];
ll lose[maxn];
int use[maxn];
int n, m;
int main() {
cin >> n >> m;
for(int i = 1; i <= n; i++) cin >> lose[i] >> win[i] >> use[i];
for(int i = 1; i <= n; i++) {
for(int j = m; j >= 0; j--) {
if(j >= use[i])
dp[j] = max(dp[j] + lose[i], dp[j - use[i]] + win[i]);
else
dp[j] += lose[i];
}
}
cout << dp[m] * 5;
return 0;
}
相關文章
- Python 日誌庫 logging 的理解和實踐經驗Python
- 計數 dp 做題記錄(日更)
- dp 套 dp(dp of dp)小記
- ACM日常訓練日記——8.1(區間dp)ACM
- DP套DP
- BZOJ2655: calc(dp 拉格朗日插值)
- Java面經 面試經驗 網際網路公司面試經驗 後端面試經驗Java面試後端
- Hexo · 經驗Hexo
- vux · 經驗UX
- vue · 經驗Vue
- 經驗分享
- 經驗談
- Debug經驗
- [DP] 數位DP
- 【DP】Educational DP Contest
- dp套dp 隨寫
- 6條經過驗證的創業經驗分享創業
- 【日記】第一次養植物,沒什麼經驗……(781 字)
- 實習經驗
- 經驗談集
- MySQL工作經驗MySql
- Git常用經驗Git
- 期權經驗
- 【DP】區間DP入門
- dp
- 經典dp--搶家奪舍系列之GO寫法Go
- 動態規劃之經典數學期望和概率DP動態規劃
- [DP] DP最佳化總結
- Java筆試經驗Java筆試
- linux面試經驗Linux面試
- 工作經驗總結
- Polymer使用經驗分享
- Pstore 相關經驗
- SEO 經驗記錄
- 【高中經驗分享】2021.11.29
- 洛谷題單指南-動態規劃1-P1802 5 倍經驗日動態規劃
- 序列 DP
- dp板子