- 博客(9)
- 资源 (1)
- 收藏
- 关注
原创 0-1背包算法 plus 空间复杂度优化版
问题描述:在M件物品取出若干件放在空间为W的背包里,每件物品的体积为volume[1],volume[2]……volume[n],与之相对应的价值为value[1],value[2]……value[n]。物品不可分割。算法:动态规划。dp[i][j]表示有i件物品,背包大小为j的时候能拿走物品的最大价值,那么,dp[i][j]=max(dp[i-1][ j-volume[i] ]+
2011-12-15 19:08:29
935
1
原创 最长上升子序列LIS O(nlgn)算法
问题就不描述了,相信来看这个算法的人都清楚。int LIS(int str[],int len){ int max,left,right,i,mid; lis[1] = str[0]; max = 1; for(i=1; i<len; i++) { if(str[i] > lis[max]) {
2011-12-15 14:57:18
496
原创 memset()的效率以及源码分析
void *memset(void *s, int c, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset当作万能的初始化工具,例如:int arr[n];memset(arr,1,n*sizeof(int));这样得到的ar
2011-11-23 15:49:44
1481
原创 最长公共子串LCS plus 空间复杂度优化版
最长公共子串(Longest common substring)问题指的是求出给定的一组字符串的长度最大的共有的子字符串。 举例说明,以下三个字符串的LCS就是 cde: (字符可以不相邻)asdfawsrdefasdff这个算法很经典,就不解释了,不清楚的google一下吧,写日志就是为了记录下来。先给出原始版:(函数返回所求的lcs,字符串和二维数组在全局定义)
2011-11-23 14:22:27
1714
原创 组合数算法-解决溢出问题
组合数的定义:C(n,m)=n!/( (n-m)!*m! )计算组合数主要头疼的是溢出,long long 类型的数字算C(82,41)已经不行了。。。一、普通算法 由于溢出问题严重,所以算出三个阶乘再做除法的话,中间结果会溢出。 首先做个小优化,利用 C(n,m) = C(n,n-m) ,如果m超过n的一半就让 m = n-m。 这样处理之后,m一定是小于等
2011-11-05 14:45:33
5048
原创 修改归并排序求逆序数
逆序指的是一列数中,如果a在b前面,且a>b,称ab逆序,逆序数是一列数中逆序对的个数。很直接的想法是用两层循环,不过我们有更快速的办法,利用归并排序。归并排序的思路是把待排序的数组分为有序的两部分,例如1,3,5,7,9和2,4,6,8,10,再用O(n)的时间合并这两部分,待合并的子序列利用递归来排序,直到合并的序列为一两个数。求逆序则是利用其中合并的一步,代码如下:templ
2011-10-13 20:54:29
695
原创 二分法矩阵求斐波那契(fibonacci)数列第n项
如图,Fibonacci 数列中任何一项可以用矩阵幂算出,而n次幂是可以在logn的时间内算出的。下面贴出代码:void multiply(int c[2][2],int a[2][2],int b[2][2],int mod){ int tmp[4]; tmp[0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]; tmp[1]=a[0][0
2011-10-13 20:26:15
2134
1
原创 大整数类C++实现——完整代码
#include using std::ostream;#define MAXLEN 10001#define POSITIVE 1#define NEGATIVE -1#define ZERO 0class HugeInt{ friend ostream& operator<<(ostream& output,const HugeInt& n); public:
2011-08-06 23:02:12
2453
4
原创 大整数类C++实现——关键代码
相信很多编程新手都上google,baidu搜过这类东西。 我也是因为这样才终于下决心自己动手完善一个大整数类,虽然C++效率不如C,不过只是关键算法明白就好,写成类只是心理痛快点。 先看头文件代码:基本的C++类什么的就不详细讲了,主要说一下设计思路。#define MAXLEN 1000#define POSITIVE 1#define NEGATIVE -1#
2011-08-06 22:59:17
4217
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人