分治策略专题
文章平均质量分 52
hui1570
这个作者很懒,什么都没留下…
展开
-
递归—集合划分
集合的划分【问题描述】 设S是一个具有n个元素的集合,S={a1,a2,……,an},现将S划分成k个满足下列条件的子集合S1,S2,……,Sk ,且满足: 1.Si!=空 2.Si 交 Sj = 空 3.S1 U S2 U S3 U....U Sk = S则称S1,S2,……,Sk原创 2014-08-01 09:50:21 · 1413 阅读 · 0 评论 -
简单递归—斐波那契数列
#includeint a[100];int Fibonacci(int n) { if(n==0) return 0; else if(n==1) return 1; else return Fibonacci(n-1)+Fibonacci(n-2);}int main(){ int n;原创 2014-07-31 15:59:47 · 522 阅读 · 0 评论 -
简单递归—Hanoi(汉诺塔问题)
问题描述:有N个圆盘,依半径大小(半径都不同),自下而上套在A柱上,每次只允许移动最上面一个盘子到另外的柱子上去(除A柱外,还有B柱和C柱,开始时这两个柱子上无盘子),但绝不允许发生柱子上出现大盘子在上,小盘子在下的情况,现要求设计将A柱子上N个盘子搬移到C柱去的方法。【算法分析】 本题是典型的递归程序设计题。 (1)当N=1 时,只有一个盘子,只需要移动一次:原创 2014-07-31 10:41:47 · 690 阅读 · 0 评论 -
简单递归—二分法查找
题目描述:设有N个数已经按从大到小的顺序排列,现在输入X,判断它是否在这N个数中,如果存在则输出:“YES” 否则输出“NO”。题目该问题属于数据的查找问题,数据查找有多种方法,通常方法是:顺序查找和二分查找,当N个数排好序时,用二分查找方法速度大大加快。二分查找算法: (1) 设有N个数,存放在A数组中,待查找数为X,用L指向数据的高端,用R指向数据的低端,MID指向中原创 2014-07-31 09:58:20 · 757 阅读 · 0 评论 -
简单递归—奇特的数字系列
题目描述: 据说一群在毕达哥拉斯领导下工作的古希腊数学家,发现了数字系列1,3,6,10,15,21... 中有一种奇特的联系。你能知道这个数字的系列的下一个数字是什么吗?(经分析可知每位上面的数 =它的位数 + 前一位上面的数)#includeint strange(int n){ if(n==1) //临界条件 return 1;原创 2014-07-30 17:38:21 · 413 阅读 · 0 评论 -
简单递归—求最大公约数(辗转相除法)
//今天做题用到了辗转相除法来求最大公约数,才想起来这也是用递归来完成的#include#includeint gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}int main(){ int a,b; while(scanf("%d%d"原创 2014-07-31 14:57:02 · 1590 阅读 · 0 评论 -
简单递归—前N项和
题目要求:给定n(n>=1),用递归的方法计算1+2+3+4+...+(n-1)+n。 #includeint sum(int n){ if(n==1) return 1; //临界条件 else return n+sum(n-1); //递归方程 }int main(){ int n;原创 2014-07-31 09:22:12 · 727 阅读 · 0 评论 -
简单递归—计算N!
//用递归方法求 N!,这是学习递归算法的最基本的代码之一 #includeint f(int n){ if(n==0) //临界条件就是当 n==0 时的情况 return 1; else return n*f(n-1); //递归方程是 f(n)=n*f(n-1) }int main(){ int原创 2014-07-30 16:53:13 · 564 阅读 · 0 评论 -
递归—简单背包问题
简单的背包问题【问题描述】设有一个背包,可以放入的重量为s。现有n件物品,重量分别为w1,w2…,wn,(1≤i≤n)均为正整数,从n件物品中挑选若干件,使得放入背包的重量之和正好为s。找到一组解即可。【输入格式】第一行是物品总件数和背包的载重量,第二行为各物品的重量。【输出格式】各所选物品重量。【输入样例】10 51 2 3 4 5【输出样例】nu原创 2014-08-01 12:01:00 · 1010 阅读 · 0 评论 -
递归—北大POJ 1664 放苹果(集合划分系列,还需再看)
放苹果Description把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。Input第一行是测试数据的数目t(0 Output对输入的每组数据M和N,用一行输出相应的K。Sample Input17 3Sample Outpu8原创 2014-08-01 10:09:55 · 441 阅读 · 0 评论 -
简单递归—每位平方和
题目:一个数字链由数字的每位平方相加而成。例子:44->32->13->10->1->1 //4*4+4*4=32,3*3+2*2=13.........给你一个数字N计算出N(包括N)以内的所有数据链最后的数是1的个数。//1#includeint sum(int n){ int a,b; if(n return n;原创 2014-07-31 17:29:15 · 1065 阅读 · 0 评论