摘要: 题目描述:给定一个大小为n的数组,数组的元素a[i]代表第i天的股票价格。设计一个算法,计算在最多允许买卖k次(一买一卖记为一次)的条件下的最大收益。需要注意的是,你不能同时拥有两份股票。也就是说在下次买入前,你必须把手头上原有的股票先卖掉。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为两个整数n和k(1 const int MAX = 1001; int dp[MAX][MAX]; int main(){ int list[1010]; int n, k; while(scanf("%d %d", &n, &k) == 2) { for. 阅读全文
posted @ 2014-03-10 13:57 而远之 阅读(932) 评论(1) 推荐(0) 编辑
摘要: 本文为经典动态规划问题,数组的最大序列和和的延伸。第一次看见这个题,用了端点枚举的方法,复杂度为0(n^2)。超时严重。参考九度Online Judge_1527: 首尾相连数组的最大子数组和这篇文章才明白O(n)的算法。题目描述:给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的。数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所有连续子数组和的最大值(如果数组中的元素全部为负数,则最大和为0,即一个也没有 阅读全文
posted @ 2014-03-10 10:40 而远之 阅读(425) 评论(0) 推荐(0) 编辑