
算法
文章平均质量分 70
baihacker
这个作者很懒,什么都没留下…
展开
-
常用排序算法之计数排序,基数排序与桶排序
'计数排序,基数排序Option ExplicitDim Result, IDim TestData(100)const N = 100RandomizeFor I = 0 To N - 1TestData(I) = ROUND(RND() * 32768)Next'以base^pow位上的数映射到MapSub MapTo(byRef Array原创 2008-04-06 10:53:00 · 1386 阅读 · 0 评论 -
金山招聘题目:编程计算从1到2008080808之间的整数有多少个含有数字7
我的代码(如果要加一个模板参数来判断n和last是否相等,会有意想不到的效果):#include using namespace std;const int MAX = 2008080808;const int IT = 7;templateint n, int curr, int last, int base, int weight>class A{ enum{it = n/b原创 2008-06-15 21:00:00 · 7705 阅读 · 14 评论 -
二分原理
作者:baihacker来源:http://hi.baidu.com/feixue http://hi.youkuaiyun.com/baihacker二分原理:设f是定义在[a, b]上的bool函数,且满足性质若f(i) = true则f(i+1) = true.那么算法:int l = a, r = b;while (l { int mid = (l + r)/2;原创 2009-10-16 15:46:00 · 2635 阅读 · 0 评论 -
生日悖论
今天http://weibo.com/2887339314/BcqXD9OKz 发了个问题:300个人,至少5个人同一天生日的概率,博主用蒙特卡罗方法算出来了结果,一时兴起,写了个算精确结果的代码。原创 2014-07-07 11:33:44 · 3312 阅读 · 0 评论 -
在GitHub上挖了两个坑
在Github上挖了两个关于project euler的坑.原创 2014-09-05 11:21:34 · 3031 阅读 · 0 评论 -
DacningLinks实现
本文简单分析DancingLinks实现中的数据结构设计,给出了精确覆盖问题及其扩展问题的代码,并应用于数独问题。原创 2014-08-23 14:59:47 · 2485 阅读 · 0 评论 -
求逆序数的三种数据结构比较
本文比较树状数组,线段树,还有一种unnamed的树状结构,在求逆序数中的运行效率。原创 2014-08-23 16:33:59 · 3915 阅读 · 0 评论 -
关于PE458(project euler 458 Permutations of Project)的思考
本文回顾了PE458的解题过程中遇到的问题,介绍了trie,AC自动机,自动机化简算法.原创 2014-09-03 12:05:40 · 6744 阅读 · 0 评论 -
windows10下编译clang流水帐
windows10上编译clang的流水账。原创 2016-05-15 14:34:47 · 4458 阅读 · 4 评论 -
关于广义莫比乌斯反演的思考
本文总结关于广义莫比乌斯反演的一些思想。1. 广义莫比乌斯反演为区别平时所说的整数上定义整除关系后,在dirichlet卷积下的莫比乌斯反演,这里更关心其一般化,所以称之为广义莫比乌斯反演。在Richard A. Brualdi所著的Introductory Combinatorics (版本不限,中文名为组合数学)中The Inclusion-Exclusion Principle and Ap...原创 2018-03-18 02:24:39 · 1169 阅读 · 3 评论 -
常用排序算法之插入排序与希尔排序
'插入排序Option ExplicitDim Result, IDim TestData(100)const N = 100RandomizeFor I = 0 To N - 1TestData(I) = ROUND(RND() * 32768)Next'插入排序Sub ISort(byRef Array, low, hi)Dim i, j原创 2008-04-06 10:50:00 · 977 阅读 · 0 评论 -
常用排序算法之选择排序与冒泡排序
'选择,冒泡排序Option ExplicitDim Result, IDim TestData(100)const N = 100RandomizeFor I = 0 To N - 1TestData(I) = ROUND(RND() * 32768)Next'选择排序Sub SSort(byRef Array, low, hi)Dim t原创 2008-04-06 10:39:00 · 1083 阅读 · 0 评论 -
KMP算法C++代码
//by baihacker #include #include #include #include using namespace std;templatetypename FType, typename SType>struct equal_cmp{ bool operator ()(const FType& _F, const SType& _S)cons原创 2008-08-20 19:36:00 · 12559 阅读 · 12 评论 -
常用排序算法之堆排序与快速排序
'堆排序Option ExplicitDim Result, IDim TestData(100)const N = 100RandomizeFor I = 0 To N - 1TestData(I) = ROUND(RND() * 32768)Next'堆排序Sub HSort(byRef Array, low, hi)Dim i, t,原创 2008-04-06 10:48:00 · 1811 阅读 · 0 评论 -
后缀数组--倍增法实现
这个实现比较粗糙,速度慢,内存需求也大.struct SFX{ int idx; int key1, key2;};int operator < (const SFX& x, const SFX& y){ return x.key1 < y.key1 || x.key1 == y.key1 && x.key2 < y.key2;}inline void BuildRank原创 2009-07-01 13:17:00 · 1369 阅读 · 0 评论 -
google code jam 2009 解题报告
gcj_2009_qualification_round解题报告http://hi.baidu.com/feixue/blog/item/362d42a71584269cd14358ae.htmlgcj_2009_round_1B解题报告http://hi.baidu.com/feixue/blog/item/9e8fc917f80e6103c93d6d27.htmlgcj_200原创 2009-10-12 00:15:00 · 1877 阅读 · 0 评论 -
用递归写的大数运算
//by baihacker 用递归写的大数运算 #include typedef struct BigNum_{ int data[256]; int n;} BigNum;BigNum* carry(BigNum* bn, int curr, int valid, int inc){ return curr>=valid && inc ? (++bn->n,原创 2008-06-15 16:19:00 · 3259 阅读 · 0 评论 -
常用排序算法之归并排序
'归并排序Option ExplicitDim Result, IDim TestData(100)const N = 100RandomizeFor I = 0 To N - 1TestData(I) = ROUND(RND() * 32768)NextSub MergeTo(byRef Array, byRef Dest, low, mid, h原创 2008-04-06 10:52:00 · 1582 阅读 · 2 评论 -
非递归生成所有排列(knuth)
'knuth给的算法'生成所有排列Option ExplicitDim result, counterconst N = 4const Format = 10Sub Swap(byRef InArray, first, second)Dim tt = InArray(first)InArray(first) = InArray(second)原创 2008-04-06 10:59:00 · 1316 阅读 · 0 评论 -
soj上一个fuckable的题目
题目链接:http://cs.scu.edu.cn/soj/problem.action?id=3098题目概述:DescriptionOnce again, James Bond is on his way to saving the world. Bond's latest mission requireshim to travel between several原创 2009-10-08 10:19:00 · 1968 阅读 · 2 评论 -
AVL(平衡树)C++代码(非递归)
代码被移动到二叉查找树代码中。需要资源分为0。资源描述1.里面有一份较老的avl树代码。2.主要构成是基于C++的模板技术的二叉查找树代码,其中包含avl树,bst树(二叉查找树),rbt(红黑树),sbt(size平衡树),splay(伸展树),treap树。3.代码以一个bst_base为基础,实现通用算法。将对象特征和存储结构通过模板参数向上传递,实现特化算法。最终各个不原创 2008-08-20 19:47:00 · 3906 阅读 · 7 评论 -
windows下编译flint2
本文介绍如何在windows下编译64位的flint2,解决了windows下对应库的编译错误.1.安装MinGW64下载地址:https://sourceforge.net/projects/mingw-w64/下载installer后运行,在运行时选择需要安装的版本,本文使用的版本是MinGW-x86_64-8.1.0-win32-seh-rt_v6-rev02.安装msys2下载地址:htt...原创 2018-06-14 14:02:21 · 830 阅读 · 0 评论