
算法
文章平均质量分 54
llingy
这个作者很懒,什么都没留下…
展开
-
并查集,二进制
一种简单而有趣的数据结构——并查集 - goal00001111的专栏 - 优快云博客 http://blog.youkuaiyun.com/goal00001111/archive/2008/12/24/3595844.aspx二进制在数学中的妙用http://blog.youkuaiyun.com/goal00001111/archive/2008/11/17/3318739.aspx原创 2010-07-02 18:06:00 · 428 阅读 · 0 评论 -
katalan数
<br />katalan数:<br />http://zh.wikipedia.org/zh/%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0<br /> 我总结了一下,最典型的四类应用:(实质上却都一样,无非是递归等式的应用,就看你能不能分解问题写出递归式了)<br /><br /> 1.括号化问题。<br /> 矩阵链乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)<br /><br原创 2011-01-12 23:25:00 · 800 阅读 · 0 评论 -
一些有趣的问题
<br />1. 不用比较操作(if, >, <)实现max/min <br /> (1) max=(abs(a-b)+a+b)/2 min=(a+b)-max=((a+b)-abs(a-b))/2 <br /> (2) int Max(int a, int b)<br /> {<br /> int ret[2] = { a, b };<br /> int d = a - b;<br />原创 2010-10-17 23:45:00 · 1201 阅读 · 0 评论 -
NIM(1) 一排石头的游戏
<br />http://dev.firnow.com/course/3_program/c++/cppjs/20090524/167795.html<br />若规定最后取光石头的人输,又该如何应对呢(还有必胜的策略么?)?<br />仍然用<1,1,1,1>这种形式来表示石头.仍然是你先取.<br />如果是1块,你必输.<br />如果是2块,你赢.你可以在边角取走一块,然后便成为:这时候只剩1块石头,对手先取.这样就成1块石头的情况,结果当然是对手输<br />如果是3块,你赢.你可以在边角取走两块转载 2010-09-04 18:34:00 · 1972 阅读 · 6 评论 -
pku 2337 Catenyms
<br />以字母为节点,字符串为有向边,寻找有向图的欧拉通路。<br />先回顾一下欧拉通路与回路的定义:<br />定义:<br />欧拉通路 (欧拉迹):通过图中每条边且只通过一次,并且经过每一顶点的通路。<br />欧拉回路 (欧拉闭迹):通过图中每条边且只通过一次,并且经过每一顶点的回路。<br />欧拉图:存在欧拉回路的图。<br />简单说欧拉通路就是首尾不相接,而欧拉回路要求首尾相接。<br />无向图是否具有欧拉通路或回路的判定:<br />欧拉通路:图连通;图中只有2个度为奇数的节点(就原创 2010-08-13 15:43:00 · 829 阅读 · 0 评论 -
ACM PKU 1177 Picture
http://acm.pku.edu.cn/JudgeOnline/problem?id=1177 //这个题呢,据说是用线段树来求解,下面有一个示例解法,但我觉得好像有点问题,仅供参考,譬如在输入 3 -1 –1 0 0 0 –1 1 2 -1 1 0 2 时结果应该为12 但该程序的结果是16 #include #include using namespace std; const int MAXINT = 99999999; struct TSegment转载 2010-06-16 20:20:00 · 967 阅读 · 0 评论 -
搜索算法集锦
搜索有以下几种算法: 枚举算法: 也即列举问题的所有状态从而寻找符合问题的解的方法。 适合用于状态较少,比较简单的问题上。 广度优先搜索: 从初始点开始,根据规则展开第一层节点,并检查目标节点是否在这些节点上,若没有,再将所有的第一层的节点逐一展开,得到第二层节点,如没有,则扩展下去,直到发现目标节点为止。 比较适合求最少步骤或最短解序列的题目。 一般设置一个队列queue,将起始转载 2010-06-16 21:38:00 · 39850 阅读 · 3 评论 -
向量旋转算法集锦
http://blog.youkuaiyun.com/goal00001111/archive/2008/12/29/3635929.aspx /* Name: 向量旋转算法集锦 Copyright: 始发于goal00001111的专栏;允许自由转载,但必须注明作者和出处 Author: goal00001111 Date: 28-12-08 23:28 Description: 向量旋转算法:将具有n个元素的向量a向左旋转r个位置。原创 2010-07-18 18:49:00 · 735 阅读 · 0 评论 -
算法导论习题:寻找第2小元素&&关于常见排序算法的稳定性分析和结论
关于常见排序算法的稳定性分析和结论 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj, Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。基数排序就是这样,先按低位排序,逐次按高位排序,低位相同的元素其顺序再高位也相同时是不会改变的。另外转载 2010-07-18 18:45:00 · 1496 阅读 · 2 评论 -
常见面试题智力题
1.一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子? Answer:假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人原创 2010-07-08 13:19:00 · 749 阅读 · 0 评论 -
求逆序数
<br />求逆序数:<br /> 1.冒泡排序,因为冒泡排序只交换两个相邻的数,所以每一次交换都只改变一个逆序,所以可以统计冒泡排序的交换元素的次数。<br /> 2.归并排序。<br /> 3.树状数组。<br />http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=binaryIndexedTrees<br />http://blog.youkuaiyun.com/suwei19870312/archive/2010/02/06/5293694.原创 2011-01-12 23:25:00 · 613 阅读 · 0 评论