lzhenf

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年12月15日

摘要: /*sicily 一道找中位数的题目 条件限制是内存小 , 不足以存下全部数字 2M的内存空间 , 最大数目去到 500000 ;初略估算 : 一个Int 4个字节 4 * 500000 = 2000000个字节 , 1MB = 1024 * 1024 个字节 = 1048576个字节 2Mb就是 208000个字节 , 如果把所有数字都存放的话 , 在没有空间运行程序了 。因此考虑建一个堆 , 但是堆的大小只有 N/2 , 这样的话 , 还有1MB的运行空间 , 当后一半数据输入的时候,动态把堆的其中无用节点弹出,新的数值插入堆。*/#include <stdio.h>#incl 阅读全文
posted @ 2011-12-15 23:06 lzhenf 阅读(423) 评论(0) 推荐(0) 编辑

摘要: 版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。前言: 上次写过一篇关于贝叶斯概率论的数学,最近时间比较紧,coding的任务比较重,不过还是抽空看了一些机器学习的书和视频,其中很推荐两个:一个是stanford的machine learning公开课,在verycd可下载,可惜没有翻译。不过还是可以看。另外一个是prml-pattern recognition and machine learning, Bishop的一部反响不错的书,而且是2008年 阅读全文
posted @ 2011-12-15 15:05 lzhenf 阅读(133) 评论(0) 推荐(0) 编辑

摘要: 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 const int cmax = 100005; 5 const int minnum = -999999999; 6 int ans , s , x , posx , posy ; 7 struct Tnode 8 { 9 10 int maxs , sum , maxl , maxr ; // maxs为当前区间最大的序列和 , sum为当前区间的和 , maxl为当前区间左端点开始的最大序列和 , maxr 11 ... 阅读全文
posted @ 2011-12-15 11:25 lzhenf 阅读(384) 评论(0) 推荐(0) 编辑

摘要: n由于两个子线段是尽量平均的,因此长度为N的线段树的深度为O(logN)。n给定一个叶子p, 从根到p路径上所有结点(即p的所有直系祖先)代表的线段都包含点p, 且其他结点代表的线段都不包含点p。n对于每个线段,都可以看作O(logN)条线段的并,且每两条线段间不存在公共部分。(分治思想)线段树的写法:/*线段树的基本结点结构,[l,r]表示这个结点所代表的线段,left和right分别指向左右儿子。*/ struct node { int l, r; node *left, *right; // something else};线段树建立 :node* build(int l,int ... 阅读全文
posted @ 2011-12-15 11:21 lzhenf 阅读(226) 评论(0) 推荐(0) 编辑

摘要: 1 /* 2 K路归并排序 , 3 主要思想 : 4 建立K路链表 , 在K路的最小元素提取出来 。 5 存储到 result数组中 , 利用result数组构造最小堆 , 6 每次取出堆顶的元素 , 在把取出的元素的那路的next填充到堆顶中, 重新维持堆特性 7 通过每次取出堆顶 ,知道K路链表均被取完 ,完成归并排序 8 */ 9 #include <stdio.h> 10 #include <algorithm> 11 #include <memory.h> 12 13 using namespace std; 14 //定义链表节点 15 stru 阅读全文
posted @ 2011-12-15 11:01 lzhenf 阅读(1613) 评论(0) 推荐(0) 编辑