- 博客(12)
- 资源 (5)
- 收藏
- 关注
原创 HDU - 1021ACM
这个题目很简单了,就是斐波那契数列~至于直接加的方法应该会超时的(没试,不过应该会超时)。所以用矩阵快速幂的方法(假如不知道快速幂怎么做,请看我上面的博客:http://blog.csdn.net/alps1992/article/details/42131581)就比较简单了~ 其实就是构造矩阵。代码如下://// main.cpp// hdu_1021//
2014-12-28 03:15:19 861
原创 HDU - 1019ACM
这个题目比较简单。http://acm.hdu.edu.cn/showproblem.php?pid=1019所以直接写就行,原理就是先找两个数的最小公倍数,然后用当前最小公倍数和下一个数继续求最小公倍数。代码如下:#includeint gcd(int a, int b){ if(b == 0){ return a; } return
2014-12-27 18:10:33 729
原创 HDU - 1014ACM
这题其实是判断两个数是否互质。当然也可以暴力破解。//// main.cpp// UniformGenerator_hdu1014//// Created by Alps on 14/12/27.// Copyright (c) 2014年 chen. All rights reserved.//#include using namespace s
2014-12-27 02:14:51 1317
原创 HDU - 1013ACM
这个题目很简单,但是很容易WA。是因为题目里给的数字大小可能超过unsigned int.所以要用字符串。这是最重要的部分了。下面是代码,很简单。//// main.cpp// DigitalRoot_hdu1013//// Created by Alps on 14/12/25.// Copyright (c) 2014年 chen. All rights rese
2014-12-25 03:11:58 825
原创 HDU - 1012ACM
这题就更简单了。不说了~ 上个代码就好了。//// main.cpp// uCalculatee//// Created by Alps on 14/12/25.// Copyright (c) 2014年 chen. All rights reserved.//#include using namespace std;double jiecheng(doub
2014-12-25 02:37:35 984
原创 HDU - 1008ACM
这个题有点简单,代码只用1分钟~主要是看清,每行的第一个数字是说明当前用例有几个数字,而不是楼层。//// main.cpp// Elevator//// Created by Alps on 14/12/25.// Copyright (c) 2014年 chen. All rights reserved.//#include using namespace s
2014-12-25 02:14:53 944
原创 算法学习 - 快速幂和矩阵快速幂(复杂度Olog(n))C++实现
快速幂快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。快速幂实现原理快速幂的原理比较好懂,就是说假如我们求的是3^11,其实比较通用的办法就是for 1:11a*=3;时间复杂度为O(n), 那么我们有没有更快的办法呢? 有的~就是下面要说的快速幂。快速幂就是把指数进行一次l
2014-12-24 22:51:02 23864
原创 算法学习 - 链表之归并排序_O(1)空间_O(NlogN)时间_C++
归并排序归并排序我在之前已经讲过了,并且给了在数组的数列的情况下的归并排序方法,而排序的时间复杂度为O(NlogN).想看的话链接如下:归并排序,快排,冒泡排序但是这个归并排序有一个缺点:需要O(n)的额外空间。那么这个缺点在什么情况下会解决呢?就是数列是以链表形式存储的时候!就不需要额外的申请O(n)级别的空间。那么我们为什么要用归并排序呢? 不是还有快排,堆
2014-12-12 01:05:02 2046 1
原创 算法学习 - Gray Code(格雷码)的解释和c++实现
Gray Code(格雷码)典型的二进制格雷码(Binary Gray Code)简称格雷码。当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。特点是:一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码。格雷码属于可靠性编码,是一种错误最小化的编码方式。格雷码是一种绝对编码方式。由于格雷码是一种变权码。格雷码的十进制数奇偶性与其码字中
2014-12-11 02:23:19 7447 1
原创 算法学习 - 不申请第三个数交换两个整数的值
交换两个数正常情况我们需要多申请一个变量来交换两个数的值(假设变量为a, b)。例子如下:int temp = a;a = b;b = temp;这样子就可以了。但这终究是一种需要申请临时变量的方法,总要去想想临时变量的名字。下面主要介绍两种方法。直接运算这种办法简单明了,也是我最喜欢使用的办法,因为即使是浮点型也可以用这种办法,继续假设两个变量
2014-12-07 14:11:08 1626
原创 算法学习 - LRUCache学习(C++)
LRUCache解释LRUCache就是一个缓存系统,主要是在操作系统中用的比较多,我这里实现的仅仅是一个简单的方法,原理是正确的,但是操作系统的内部的缓存代码我并没有看过。LRU是Least Recently Used的意思,Cache大家都知道是缓存的意思了。就是在缓存里保存最近最常使用的元素,这样访问这些元素的时候,速度就比较快的能访问到了。缓存里存放的一般都是键值对
2014-12-07 13:37:52 2139
原创 算法学习 - 最小栈的实现O(1)时间
最小栈最小栈其实和栈没有什么区别的,唯一的区别在于最小栈是可以在O(1)时间内得到当前的栈空间里,最小的值是多少。最小栈的操作最小栈的操作和普通栈的操作没有太大区别,唯一多了一个方法就是getMin()方法,这个方法是用来获取当前栈内的最小值。其他方法就是Push(), Pop(), Top()...等在O(n)时间内找到新的最小值这里就厉害了,先说普通的O(n)的方法~得到栈...
2014-12-05 03:56:24 9173 9
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人