数据结构与算法
文章平均质量分 66
Justmeh
这个作者很懒,什么都没留下…
展开
-
“中国剩余定理”简介、算理及其应用
<br />原文:http://eblog.cersp.com/userlog/7978/archives/2008/723693.shtml<br />我国古代数学名著《孙子算经》中,记载这样一个问题: “今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何。”用现在的话来说就是:“有一批物品,3个3个地数余2个,5个5个地数余3个,7个7个地数余2个,问这批物品最少有多少个?”这个问题的解题思路,被称为“孙子问题”、“鬼谷算”、“隔墙算”、“韩信点兵”等等。那么,这个问题怎呢?明朝数学家程转载 2010-07-30 11:13:00 · 1419 阅读 · 0 评论 -
找质数算法
<br />原文:http://www.cnblogs.com/guoxiaocong/archive/2005/12/27/305611.html 由于一个合数总是可以分解成若干个质数的乘积,那么如果把质数(最初只知道2是质数)的倍数都去掉,那么剩下的就是质数了。例如要查找100以内的质数,首先2是质数,把2的倍数去掉;此时3没有被去掉,可认为是质数,所以把3的倍数去掉;再到5,再到7,7之后呢,因为8,9,10刚才都被去掉了,而100以内的任意合数肯定都有一个因子小于10(100的开方),所以,去掉,2转载 2010-08-03 20:18:00 · 1285 阅读 · 0 评论 -
青蛙的约会与欧几里德定理
参考出处:http://hi.baidu.com/newmyl/blog/item/d4e7ac07227afcc87a894735.html/cmtid/b5e81360995e8449eaf8f823青蛙的约会:在网上看了很多关于不定方程方程求解的问题,可都没有说全,都只说了一部分,看了好多之后才真正弄清楚不定方程的求解全过程,步骤如下:求a * x + b * y = n的整数解。 1、先计算Gcd(a,b),若n不能被Gcd(a,b)整除,则方程无整数解;否则,在方程两边同时除以Gcd(a,b),原创 2010-08-04 22:36:00 · 1211 阅读 · 0 评论 -
求组合数算法
<br />二项式系数C(n, k)满足下面的要求:C(n, 0) = C(n, n) = 1 for all n > 0;<br />C(n, k) = C(n− 1, k− 1) + C(n− 1, k) for all 0 < k < n.题目要求根据给定的n和k(0 ≤ k ≤ n < 231, n > 0)计算C(n,k),典型的递归问题。但是如果采用递归,当n的值比较大的时候,会堆栈益处。而上面的表达式应该有相应的公式。如果采用公式计算就会变的简单了。#include<iostream>原创 2010-08-09 19:48:00 · 5735 阅读 · 1 评论 -
素数环问题与深度优先搜索算法
<br />n个数字(1,2,3...n)围成一个圈,要求相邻的两个数字之和是质数。<br />题目要求根据给出的n,计算所有能够组成满足条件的圈的数字序列。<br />Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionA ring is compose of n circles as s原创 2010-08-09 23:07:00 · 1804 阅读 · 0 评论 -
单调队列应用
原文地址:http://www.cppblog.com/baby-fly/archive/2010/08/04/122213.aspx?Pending=true#Post题目大意:给出一个有N个数字(-1000..1000,N<=10^5)的环状序列,让你求一个和最大的连续子序列。这个连续子序列的长度小于等于K。<br />分析:因为序列是环状的,所以可以在序列后面复制一段(或者复制前k个数字)。如果用s[i]来表示复制过后的序列的前i个数的和,那么任意一个子序列[i..j]的和就等于s[j]-s[i-1]转载 2010-08-27 21:11:00 · 1759 阅读 · 0 评论 -
单调队列初步
<br />一直弄不明白单调队列是什么,在网上也找不到易懂的介绍。最后结合别人博客上的介绍和程序看才理解是怎么回事。<br />我们从最简单的问题开始:<br />给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.<br />要求:<br /> f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1<br />问题的另一种描述就是用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值。<br />解法一:<br原创 2010-08-27 21:08:00 · 26418 阅读 · 6 评论 -
单调队列进阶
<br />题目地址 http://acm.hdu.edu.cn/showproblem.php?pid=3530<br />题目大意: 给定一个数列,长度n(1<=n<=100000), 值m和k, 求最长子序列,满足当中的最大值-最小值差不小于m且不大于k。 <br />与前面介绍的题目不太一样,这道题反过来了,没有规定窗长度,相反是要我们求要求条件的最大的窗。<br />道理还是一样,当窗长规定为l时,我们只需要保存i的前l-1个数当中的最大值和最小值,而要我们求窗长时,我们可以自己设定窗的开始位置s原创 2010-08-27 22:28:00 · 1520 阅读 · 0 评论