结构/算法
文章平均质量分 76
w57w57w57
这个作者很懒,什么都没留下…
展开
-
求大数的阶乘的位数:PKU :1423:Big Number
输入n个数,每个数m都可能很大,要求输出m!的位数,比如说10!=2628800,那么输出就是7原创 2010-09-15 10:02:00 · 848 阅读 · 0 评论 -
一种复杂度为O(n)的排序算法:位操作应用之位排序
——位运算应用篇(3)摘要本篇仍然关注位操作的应用,通过前面的两篇文章(《非常给力:位运算求组合》,《简单、易懂:位运算之求集合的所有子集》),我们已经略见了位操作之强大威力。如果说那两篇文章中讲解的应用比较偏僻,那么本篇介绍的是位操作在广为人知的排序算法中的应用原创 2011-08-03 18:19:49 · 4570 阅读 · 4 评论 -
给力!简单!易懂!位运算之求集合的所有子集
摘要刚刚完成一篇利用位运算高效地、巧妙地来解决求组合的博文:《非常给力:位运算求组合》。巧合的是,我在《数据结构算法与应用》一书中看到一道课后题是:用递归实现求一个集合的所有子集。受到题目的要求,我开始想递归,想着想着,我就发现此题不用递归而用位运算来求解,仍然非常巧妙!本篇原创 2011-08-03 17:38:41 · 6763 阅读 · 7 评论 -
一步一步求解约瑟夫(Joseph)问题
详细介绍了用模拟法和公式法求解约瑟夫(Joseph)问题,并给出了相应的分析原创 2011-07-27 21:31:43 · 4632 阅读 · 4 评论 -
高度为n的平衡二叉树最少需要多少个节点?
设f(n)为高度为n的平衡二叉树最少含有的节点数,则:f(1) = 1;f(2) = 2; f(3) = 4;f(4) = 7;……这些可以通过画图就能得到,但是当n很大时呢?其实有如下结论:f(n) = f(n-1) + f(n-2) +1,(n>=3)。这个递推结论如何得到的呢?引导问题:求一棵二叉树的节点数目:假设一颗二叉树T,其左右子树分别为TL,TR。又假设T的节点数目为F(T),TL,TR的节点数目分别为F(TL),F(TR)。则显然:F(T) = F(TL) + F(TR) + 1。本文的问题原创 2010-10-04 19:09:00 · 13642 阅读 · 4 评论 -
PKU_1611(幷查集解法)
题目来源:http://poj.org/problem?id=1611采用幷查集的思路,将同一个组的的学生合并为一个集合,最后看那些学生跟student0属于同一个集合即可。下面是我的AC代码:#include"iostream"using namespace std;const int SIZE = 30001;class UFS{ public: int Parent[SIZE]; int Degree[SIZE]; void MakeSet(); int FindSet(const int&原创 2010-10-01 06:31:00 · 596 阅读 · 0 评论 -
POJ_2236(并查集)
<br />题目:<br />DescriptionAn earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wireless network with the lap computers, but an unexpected aftershock attacked, all computers in the network were all broken. The co原创 2010-10-01 10:19:00 · 868 阅读 · 0 评论 -
POJ2524(并查集)
<br />题目来源:http://poj.org/problem?id=2524<br />DescriptionThere are so many different religions in the world today that it is difficult to keep track of them all. You are interested in finding out how many different religions students in your university be原创 2010-10-01 08:49:00 · 768 阅读 · 0 评论 -
写了个幷查集的模板类...
<br />下面的概念介绍主要参考了:http://www.cnblogs.com/cherish_yimi/archive/2009/10/11/1580839.html,根据这个介绍,自己写了个稍微通用一点的模板,是否完全正确还有待验证:<br />l 并查集:(union-find sets)<br />一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个数等。最完美的应用当属:实现Kruskar算法求最小原创 2010-09-30 16:59:00 · 584 阅读 · 0 评论 -
PKU2051(优先队列求法)
<br />题意参见:http://acm.pku.edu.cn/JudgeOnline/problem?id=2051<br />其实这个题目可以理解成os上的进程调度:有一些进程,每个进程有一个唯一的id和一个执行周期(每隔一个执行周期,进程就要执行一次)。要求把前t次执行的进程的id输出来,如果多个进程同一时刻执行,那么按照进程升序输出。<br />该问题可以用优先队列直接解决,下面是AC代码,优先队列直接使用了STL的priority_queue。<br />#include"iostream"<b原创 2010-09-27 13:16:00 · 778 阅读 · 0 评论 -
某人的ACM经历
ACM经历总结(转帖)<br />首先,我想说的就是,我是一个很普通的ACMer,高中没有参加过任何计算机和数学竞赛的经历,也没有ben那样过人的天资,努力至今也未能取得什么成绩,我之所以写下这篇文章,只是希望给刚进大学或者刚进ACM队的同学一点小小的帮助,希望你们可以少走一些弯路,更希望你们可以帮助华理取得我没能取得的辉煌。<br /><br />(1).起步阶段<br />我是从大二开始接触ACM的,要说基础的话就是大一的C语言课程了,语言方面的基础也弱,不过ACM起步阶段对于语言的要求并不是太高,只要转载 2010-09-27 10:24:00 · 1069 阅读 · 0 评论 -
给力!高效!易懂!位运算求组合
本篇摘要本篇介绍一个非常给力的求组合的算法!上一篇“c_c++刁钻问题各个击破之位运算及其实例(2)”介绍了6个比较复杂的位操作,但是没有给出任何应用实例,本篇就之前谈到的位操作进行应用,其主要内容是用位操作来实现求组合。引例先来看一道题目,这个题目是理解利用位操作求原创 2011-08-03 17:28:17 · 9692 阅读 · 11 评论