九度OJ 1537 买卖股票

转载请注明出处:http://blog.csdn.net/a1dark

分析:动态规划、降维

#include<stdio.h>
int dp[1005][1005];
int main()
{
    int n,k;
    int w[1005];
    while(scanf("%d%d",&n,&k)!=EOF)
    {
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&w[i]);
        }
        int temp=w[1];
        for(int i = 1; i <= k; i++)
        {
            int max = dp[i - 1][1] - w[1];
            for(int j = 2; j <= n; j++)
            {
                dp[i][j] = dp[i][j - 1] > (max + w[j]) ? dp[i][j - 1] : (max + w[j]);
                int tmp = dp[i - 1][j] - w[j];
                max = tmp > max ? tmp : max;
            }
        }
        printf("%d\n", dp[k][n]);
    }
    return 0;
}


你可能感兴趣的:(动态规划)