编程珠玑
qdlgdx_lsy
这个作者很懒,什么都没留下…
展开
-
编程珠玑 如何使用位逻辑运算(例如与、或、移位)来实现位向量
位向量的用处,自己感觉有两个:1.排序。但是限制条件太多2.做标记数组。好处是:大大的减少了空间#include using namespace std;/*如何使用位逻辑运算(例如与、或、移位)来实现位向量在codeblocks下,int占4个字节. */const int N = 10000;const int Size = N/(1<<5)+1;int Ar原创 2013-08-15 11:45:17 · 1046 阅读 · 0 评论 -
编程珠玑 咖啡罐问题
这是编程珠玑第2版第4章的一个习题:咖啡罐问题题意:给定一个盛有一些黑色豆子和一些白色豆子的咖啡罐以及一大堆"额外"的黑色豆子,重复下面的过程,直到罐中仅剩下一颗豆子为止。从罐中随机的选取两颗豆子,如果颜色相同,就将它们都扔掉并且放入一个额外的黑色豆子;如果颜色不同,就将白色的豆子放回罐中,而将黑色的豆子扔掉。证明该过程会终止。最后留在罐中的豆子颜色与 最初罐中白色豆子和黑色豆子的原创 2013-08-15 20:29:44 · 1464 阅读 · 0 评论 -
堆排和优先队列的实现
用优先队列可以实现堆排。#include using namespace std;/*优先队列.数组下标从1开始。[1,n]*/template class priqueue { public: priqueue(int m):n(0) { maxsize = m; Arr = new int[maxsize原创 2013-08-16 11:35:08 · 779 阅读 · 0 评论 -
编程珠玑 用后缀数组求字符串的最大重复子串
这是在编程珠玑上介绍的一种求字符串的最大重复子串,用的是后缀数组实现的。#include #include #include #include using namespace std;const int MAXN = 5000000;char C[MAXN];char* A[MAXN];/*后缀数组:字符串banana的后缀数组为:未排序:banana, anana, na原创 2013-08-17 14:24:17 · 791 阅读 · 0 评论