アルゴリズム::白準::DP:14501::退社
7094 ワード
質問する
質問リンク
商談がうまくいけば、白俊に最大の収益をもたらす計画を立ててください.
質問へのアクセス
https://velog.io/@embeddedjun/アルゴリズム-Back-Breutforce-14501-終了
コード#コード#
// https://www.acmicpc.net/problem/14501
#include <iostream>
using namespace std;
static int N, memo[15];
static pair<int, int> sched[15];
int solve(int day) {
if (day >= N) return 0; // [기저]: 범위 초과
if (day + sched[day].first > N) return solve(day + 1); // [기저]: 다음 날로 넘어갈 수 밖에 없는 경우.
if (memo[day] != 0) return memo[day]; // [기저]: 이미 메모이제이션 된 값.
// 해당 날짜를 택하는 경우와 택하지 않고 넘어가는 경우를 나눠서 계산한다.
return memo[day] = max(sched[day].second + solve(day + sched[day].first), solve(day + 1));
}
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
cin >> N;
for (int i = 0; i < N; ++i) cin >> sched[i].first >> sched[i].second;
cout << solve(0) << '\n';
}
結果
Reference
この問題について(アルゴリズム::白準::DP:14501::退社), 我々は、より多くの情報をここで見つけました https://velog.io/@embeddedjune/알고리즘-백준-DP-14501-퇴사テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol