自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程新手的blog

初学者,请多指教

  • 博客(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

C++小学生算术程序

一个面向对象的C++小学算术题软件,基本C++语法练习参照。

2012-05-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除