# 題目

AP325 Q-6-14. K 次買賣

# 解題思路

這題的要點在持有跟不持有兩個狀態

# 程式碼

#include<bits/stdc++.h>
using namespace std;
#define N 100001
int p[N],dp[101][N]={0},max_profit;
int main(){
    int n,k;
    cin>>n>>k;
    for(int i=0;i<n;i++)
        cin>>p[i];
    for(int i=1;i<=k;i++){
        max_profit= -p[0];
        for(int j=1;j<n;j++){
            dp[i][j]=max(dp[i][j-1],max_profit+p[j]);
            max_profit=max(max_profit,dp[i-1][j]-p[j]);
        }
    }
    cout<<dp[k][n-1];
    return 0;
}
更新於 閱讀次數 次