自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 动态规划求解01背包相关的基本问题

背包问题是经典问题,网上已经提供了很多优秀的解法,这里摘录动态规则的方法,同时顺便把背包相关的变形问题也一些阐述。问题:1. 经典背包问题:给定一个载重量为m,n个物品,其重量为wi,价值为vi,12. 变形:要求装入的物品重量最大?(问题很简单,但请先别BS我)3. 变形:要求装入的物品重量刚好等于背包的承重?换一种说法就是:N个数里挑出任意个数,使这些数的和等于某个值M。

2012-04-29 22:56:41 2841

转载 [微软]有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小

搜了网上的一些文章,看到一个看似很巧的搜索方法,描述于文http://blog.csdn.net/tianshuai11/article/details/7479767中。转述如下:第一种算法:   当前数组a和数组b的和之差为   A = sum(a) - sum(b)   a的第i个元素和b的第j个元素交换后,a和b的和之差为   A' = sum(a) - a[i]

2012-04-29 01:08:28 9231 1

原创 atol源码学习:char转int的细节

看了atol的实现,发现char到int的转换比较奇怪:c = (int)(unsigned char)*nptr++; 先将char转为unsigned再转为int,于是测试了下,发现有如下结果:void main(){    char c = 0x80;    unsigned uc = 0x80;    printf("c2i=%x,c2ui=%x,uc2i=%x,uc2

2012-04-28 00:34:37 2256

转载 [约瑟夫环]n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...

http://www.cnblogs.com/dartagnan/archive/2011/09/16/2179143.html[约瑟夫环]n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始... ...题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删

2012-04-28 00:29:22 1789

转载 求斐波那契 (Fibonacci) 数列第 n 项的算法

最近看算法导论的习题时联想到 SICP 的一条习题后想到的,折腾了下,得到了几种算法,不同的算法时间复杂度有 Θ(a^n), Θ(n), Θ(lg(n)) 几种。时间复杂度为 Θ(lg(n)) 的算法 比较有意思。下面一个个说,具体算法用 Common Lisp (CL) 实现,至于为什么用 CL 我在文章最后说明。约定符号 ^ 表示乘方运算。F(n) 表示 Fibonacci 数列的第

2012-04-27 20:46:13 5985 2

转载 [备忘]收集的一些题集(更新中)

前言:以下为本人收集的一些题目与解答,文中的大多题目难度并不会太高,仅是本人觉得比较有趣并且又不需要太多专业知识即可解答,不会太伤脑,仅供大家闲暇时把玩。想要专业算法的网友还请绕道!^_^本中解答较多来自网络,本中也标明了出处,有些解答则仅为本人见解,鉴于水平非常有限,其中有必有诸多疏漏,仅供参考!还望广大网友一起更正与完善!先谢过各位大神!~~---------------------分割线

2012-04-25 22:41:48 2387

转载 连续子序列的若干问题

最大和:太经典的问题。不说了。对于最大积问题: 由于负数的存在,我们不能简简单单只存一个当前最大值,我们还需要存当前最小值。 我们令F(n)表示[0,n]区间内以d[n]为结尾的最大积,令G(n)表示[0,n]区间内以d[n]为结尾的最小积,d为原序列,那么有: F(n + 1) = Max{F(n) * d[n + 1], d[n + 1], G(n) * d[n

2012-04-19 01:19:36 1285

转载 二叉查找树查找后继,前驱的问题

二叉查找树按照二叉树进行组织。二叉查找树关键字的存储方式总是瞒住二叉查找树性质:设x为二查查找树种一个节点。如果y是x的左子树中的一个节点,那么key[x] >= key[y]。如果y是x的右子树的一个节点,那么key[x] 这样对二叉查找树进行中序遍历就可得到书中所有元素的一个非降序排列。查找某一个存在节点的前驱和后继。某一个节点x的后继就是大于key[x]的关键字中最小的那个节点,

2012-04-17 10:58:57 3535

原创 一道题:给一个字符串,和一个字符集,求该字符串包含所有字符集的最短子串

比如字符集“abc”.个数为M。字符串:“xxxbxxaxbxxbaxxaaxxcxx”可知要求的最短子串是:baxxaaxxc。仔细分析最短串发现:1。b与c在最短串中仅出现一次,正好是一头一尾。2。中间的字符a,在最短串中可能出现了多次,但对于a而言如果只看它最后一次出现在最短串中,则之前不管是否出现过的都是无所谓的,比如最短串部分改成“bxxxxaxxc”,并不影响结果。

2012-04-16 21:39:52 3268

空空如也

空空如也

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

TA关注的人

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