2013年9月5日

HeapSort 堆排序

摘要: 小根堆。堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的。建堆时,从除去叶子节点的n/2开始,调整堆的时间复杂度为O(logN)。n-1次把堆顶元素与当前最后一个交换,然后调整堆。总时间还是O(N*logN)堆排序的最坏时间复杂度为O(N*logN)。堆排序的平均性能较接近于最坏性能。由于建初始堆所需的比较次数较多,所以堆排序不适宜于记录数较少的文件。堆排序是就地排序,辅助空间为O(1),它是不稳定的排序方法。来源:http://student.zjzk.cn/course_ware/data_structure/web/paixu/pai 阅读全文

posted @ 2013-09-05 17:50 Ac_coral 阅读(355) 评论(0) 推荐(0) 编辑

2013年8月9日

git参考手册

摘要: http://gitref.org/zh/index.htmlhttp://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html 阅读全文

posted @ 2013-08-09 18:04 Ac_coral 阅读(161) 评论(0) 推荐(0) 编辑

2013年8月3日

SGU 分类

摘要: 101 Domino 欧拉路102 Coprime 枚举/数学方法103 Traffic Lights 最短路104 Little Shop of Flowers 动态规划105 Div 3 找规律106 The Equation 扩展欧几里德107 987654321 Problem 找规律108 Self-numbers II 枚举+筛法递推109 Magic of David Copperfield II 构造110 Dungeon 计算几何+模拟111 Very Simple Problem 模拟笔算开方112 a^b-b^a 高精度113 Nearly Prime Numbers 判 阅读全文

posted @ 2013-08-03 09:55 Ac_coral 阅读(2253) 评论(0) 推荐(0) 编辑

2013年7月4日

七月三日

摘要: sg输入法:面试官先拿一套卷子,1h时间答完,题量不大,1.一道程序题,写输出。n&(n-1)。。。求f(131),实际上是求n在二进制下1的个数。int f(int n) { int cnt = 0; while(n) { cnt++; n = n&(n-1); } return cnt;}2.单链表逆置,写代码3.也是根据程序写输出。f(1234),应该输出4320int f(int n) { int s = 0; do { s += n%10; n /= 1... 阅读全文

posted @ 2013-07-04 19:12 Ac_coral 阅读(297) 评论(0) 推荐(0) 编辑

2013年6月30日

摘要: P200 struct考虑用一个struct实现date的概念:struct Date { int d, m, y;};void init_date(Date& d, int, int, int); //初始化dvoid add_year(Date& d, int n); //d加n年void add_month(Date& d, int n); //d加n月void add_day(Date& d, int n); //d加n天在日期类型与这些函数之间并没有任何显示的联系。可以通过将这些函数声明为成员,从而建立起这种联系:struct... 阅读全文

posted @ 2013-06-30 20:25 Ac_coral 阅读(269) 评论(0) 推荐(0) 编辑

2013年6月29日

20130629

摘要: 永远不要向任何人解释你自己。因为喜欢你的人不需要,而不喜欢你的不会相信。 阅读全文

posted @ 2013-06-29 21:34 Ac_coral 阅读(120) 评论(0) 推荐(0) 编辑

UVa11168 Airport

摘要: 题目大意:给出平面上n个点,找一条直线,使得所有点在直线的同一侧(点可以在直线上),且所有点到直线的距离之和最小,求出最小平均距离。大概思路:求n个点集的凸包,对于凸包里的m个点,进行m次判断,每次找q[i]和q[(i+1)%sz],注意最后一个点要和第0个点组成直线判断。求出由两个点所确定直线的一般方程A*x+B*y+C=0;点到直线的距离公式:|A*x0+B*y0+C| /√(A2+B2) 。。。因为所有点在直线的同一侧,所以所有的A*x0+B*y0+C的符号相同,由此得出所有点的距离之和等于:|A*X+B*Y+C*n| /√(A2+B2), 其中,X为x坐标之和,Y为y坐标之和。。值得注 阅读全文

posted @ 2013-06-29 11:07 Ac_coral 阅读(236) 评论(0) 推荐(0) 编辑

2013年6月28日

UVa10870 Recurrences

摘要: 列出方程组:a1*f(n-1)+a2*f(n-2)+a3*f(n-3)+...+ad*f(n-d)=f(n) f(n-1) =f(n-1) f(n-2) =f(n-2) f(n-3) =f(n-3) f(n-d)=f(n-d)解线性方程组,转化成矩阵形式:A × F(n-1) = F(n)a1a2a3...ad111...1f(n-1)f(n-2... 阅读全文

posted @ 2013-06-28 18:12 Ac_coral 阅读(204) 评论(0) 推荐(0) 编辑

UVa 1476 LA 3485 Error Curves

摘要: 单峰函数(unimodal function):先严格递增再严格递减(此时存在唯一的最大值),或者先严格递减再严格递增(此时存在唯一的最小值) 的函数。三分法适用于单峰函数求唯一的最值。本题是求解函数最小值问题,函数先严格递减后严格递增。使用三分法。就本题而言,在[1,1000]内求最小值,设定L=0, R=1000m1 = L + (R-L)/3;m2 = R - (R-L)/3;m1,m2是三分点。如果F(m1) eps ) { for ( i = 0; i < 100; ++i ) { m1 = L + (R-L)/3; m2 = R - (R-L)/3; ... 阅读全文

posted @ 2013-06-28 14:12 Ac_coral 阅读(248) 评论(0) 推荐(0) 编辑

UVa10652 Board Wrapping

摘要: 根据矩形的中心坐标与顺时针旋转角度,求出矩形四个点的坐标,加入点集中对所得点集求凸包。OA = OM + MAMA可以根据Rotate()函数得到部分代码: scanf ( "%lf%lf%lf%lf%lf", &x, &y, &w, &h, &j ); Point M(x,y); double ang = -torad(j); p.push_back(M+Rotate(Vector(-w/2, -h/2), ang)); p.push_back(M+Rotate(Vector( w/2, -h/2), ang)); p.push_b 阅读全文

posted @ 2013-06-28 13:36 Ac_coral 阅读(158) 评论(0) 推荐(0) 编辑

导航