# 題目
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; | |
} |