随笔分类 -  分治算法

摘要:/*最大子数组:一个数组中连续和最大的子数组。用分治法解决最大子数组问题的基本思想:把数组分成两段——left、right。则需要解决的问题变为求left的最大子数组、right的最大子数组以及cross过中点的最大子数组,比较这三种取最大的即为结果。*/#include#define INF -100000using namespace std;struct set{ int max_left, max_right, sum;//最左坐标,最右坐标,左右之和};//解决,合并set FIND_MAX_CROSSING_SUBRY(int a[], int low, int mid, i... 阅读全文
posted @ 2014-01-12 01:05 偶尔会寂寞 阅读(357) 评论(0) 推荐(0)
摘要:/*分治排序法的思想:简单引入两副已排好序的扑克牌,假设最上面的最小。则只需每次比较两副牌的最上面那一张的大小,永远取最小的,直到取完两副牌为止。为了方便,在两副牌的最后加入一张哨兵牌,值取为∞。*/#include#define INF 100000using namespace std;//合并void merge(int a[], int l, int q, int r){ int n1 = q - l + 1, n2 = r - q, *L, *R, i, j; L = new int[n1 + 1]; R = new int[n2 + 1]; for (i =... 阅读全文
posted @ 2014-01-11 23:15 偶尔会寂寞 阅读(299) 评论(0) 推荐(0)
摘要:Max SumTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 120366Accepted Submission(s): 27835Problem DescriptionGiven a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the ma 阅读全文
posted @ 2013-11-16 22:27 偶尔会寂寞 阅读(228) 评论(0) 推荐(0)
摘要:Quoit DesignTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25127Accepted Submission(s): 6675Problem DescriptionHave you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some toys, with all the toys encircled a 阅读全文
posted @ 2013-11-15 21:26 偶尔会寂寞 阅读(223) 评论(0) 推荐(0)