白準11052カードを購入
質問する
質問リンク:https://www.acmicpc.net/problem/11052
ポリシー
コード#コード#
#include<bits/stdc++.h>
using namespace std;
#define mine
vector<int> p(1001);
int dp[1001];
int main(){
int n;
cin >> n;
for(int i=1; i<=n; i++){
cin >> p[i];
}
for(int i=1; i<=n; i++){
// dp[1] 부터 순서대로 값을 계산하게 된다.
// dp[i-j] + p[j] 의 최대값이 곧 dp[i]의 값이 된다.
for(int j=1; j<=i; j++){
dp[i] = max(dp[i], dp[i-j]+p[j]);
}
}
cout << dp[n];
return 0;
}
感想
私は解決しなかったので、他の人のブログを参考にしました.しかし、コアは一つしかありません.この問題にはN枚のカードが与えられており、これらのカードが与えられた場合、これらのカードで計算するだけでよい.この技術を身につけた.
dp[i]=max(dp[i],dp[i-j]+p[j])という方法を忘れないでください.
Reference
この問題について(白準11052カードを購入), 我々は、より多くの情報をここで見つけました https://velog.io/@gomster_96/백준-11052-카드구매하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol