基础算法——递归
Alex_McAvoy
想要成为渔夫的猎手
展开
-
基础算法 —— 递归算法
【概述】递归算法:一种通过重复将问题分解为同类的子问题而解决问题的方法。 适用问题:解决结构自相似的问题。即:构成原问题的子问题与原问题在结构上相似,可以用类似的方法解决。 特点:反复执行、结束反复执行的条件 缺点:占用大量内存且不易阅读【两个问题】递归边界条件(递归终止条件):确定递归到何时终止,或者说,直接有解的情况。 递归模式(递归体):大问题是如何分解为小问题的。注:...原创 2018-04-28 00:38:51 · 1902 阅读 · 0 评论 -
Function(洛谷-P1464)
题目描述对于一个递归函数w(a,b,c)如果a<=0 or b<=0 or c<=0就返回值1.如果a>20 or b>20 or c>20就返回w(20,20,20)如果a<b并且b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)其它别的情况就返回w(a-1,b,c)+w(a-1,b-1,c)+w...原创 2018-03-03 14:34:24 · 1129 阅读 · 0 评论 -
分数求和(信息学奥赛一本通-T1209)
【题目描述】输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1/1;若最终结果的分母为1,则直接用整数表示。如:5/6、10/3均是最简形式,而3/6需要化简为1/2,3/1需要化简为3。分子和分母均不为0,也不为负数。【输入】第一行是一个整数n,表示分数个数,1≤n≤10;接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q...原创 2018-05-10 23:41:55 · 5880 阅读 · 1 评论 -
黑白棋子的移动(信息学奥赛一本通-T1327)
【题目描述】有2n个棋子(n≥4)排成一行,开始位置为白子全部在左边,黑子全部在右边,如下图为n=5的情形:○○○○○●●●●●移动棋子的规则是:每次必须同时移动相邻的两个棋子,颜色不限,可以左移也可以右移到空位上去,但不能调换两个棋子的左右位置。每次移动必须跳过若干个棋子(不能平移),要求最后能移成黑白相间的一行棋子。如n=5时,成为:○●○●○●○●○●任务:编程打印出移动过程。...原创 2018-05-15 22:53:38 · 3531 阅读 · 0 评论 -
汉诺塔问题(信息学奥赛一本通-T1205)
【题目描述】约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,0...原创 2018-05-10 23:31:34 · 8721 阅读 · 0 评论 -
放苹果(信息学奥赛一本通-T1206)
【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。【输出】对输入的每组数据M和N,用一行输出相应的K。【输入样例】17 3【输出样例】8【源程序】...原创 2018-05-10 23:30:00 · 6019 阅读 · 0 评论 -
鸣人的影分身(信息学奥赛一本通-T1303)
【题目描述】在火影忍者的世界里,令敌人捉摸不透是非常关键的。我们的主角漩涡鸣人所拥有的一个招数——多重影分身之术——就是一个很好的例子。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。那么问题来了,假设鸣人的查克拉能量为M,他影分身的个数最多为N,那么制造影分身...原创 2018-06-07 15:14:04 · 3855 阅读 · 0 评论 -
基础算法 —— 递归/递推 —— 汉诺塔问题(Hanoi)
【问题提出】Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上,如图所示。要求把a柱上n个圆盘按下述规则移到c柱上: (1)一次只能移一个圆盘; (2)圆盘只能在三个柱上存放; (3)在移动过程中,不允许大盘压小盘。问将这n个盘子从a柱移动到c柱上,总计需要移动多少个盘次?【问题解答】解:设Hn为n个盘子...原创 2018-04-23 22:00:16 · 4521 阅读 · 0 评论 -
Pell数列(信息学奥赛一本通-T1202)
【题目描述】Pell数列a1,a2,a3,...的定义是这样的,a1=1,a2=2,...,an=2an−1+an−2(n>2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。【输入】第1行是测试数据的组数 n,后面跟着 n 行输入。每组测试数据占 1 行,包括一个正整数k(1≤k<1000000)。【输出】n 行,每行输出对应一个输入。输出应...原创 2018-05-09 23:59:43 · 8843 阅读 · 2 评论 -
Xor Sum(AtCoder-2272)
Problem DescriptionYou are given a positive integer N. Find the number of the pairs of integers u and v (0≦u,v≦N) such that there exist two non-negative integers a and b satisfying a xor b=u and a+...原创 2019-05-27 22:02:01 · 555 阅读 · 0 评论 -
石头剪刀布
【题目描述】wzms 今年举办了一场剪刀石头布大赛,bleaves 被选为负责人。比赛共有2n2n 个人参加, 分为 n 轮,在每轮中,第 1 位选手和第 2 位选手对战,胜者作为新的第 1 位选手,第 3 位和第 4 位对战,胜者作为新的第 2 位选手,以此类推。bleaves 调查得知,每个人都有其偏爱决策,每个人在每一次对战中都会使用他的偏爱决策。如果一次对战的双方的...原创 2019-05-27 16:22:30 · 576 阅读 · 0 评论 -
Formurosa(CF-217C)
Problem DescriptionThe Bytelandian Institute for Biological Research (BIBR) is investigating the properties of two species of bacteria, named simply 0 and 1. Even under a microscope, bacteria of th...原创 2019-07-28 09:39:42 · 334 阅读 · 0 评论 -
数的计数(信息学奥赛一本通-T1316)
【题目描述】我们要求找出具有下列性质数的个数(包括输入的自然数n)。先输入一个自然数n(n≤1000),然后对此自然数按照如下方法进行处理:不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止。【输入】自然数n(n≤1000)。【输出】满足条件的数。【输入样例】6【输出样例】...原创 2018-05-09 23:43:39 · 5044 阅读 · 5 评论 -
判断元素是否存在(信息学奥赛一本通-T1211)
【题目描述】有一个集合M是这样生成的:(1) 已知k是集合M的元素; (2) 如果y是M的元素,那么,2y+1和3y+1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。问题:任意给定k和x,请判断x是否是M的元素。这里的k是无符号整数,x 不大于 100000,如果是,则输出YES,否则,输出NO。【输入】输入整数 k 和 x, 逗号间隔。【输出】...原创 2018-05-10 23:37:37 · 6173 阅读 · 2 评论 -
数的计算(洛谷-P1028)
题目描述我们要求找出具有下列性质数的个数(包含输入的自然数n):先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理:不作任何处理; 在它的左边加上一个自然数,但该自然数不能超过原数的一半; 加上数后,继续按此规则进行处理,直到不能再加自然数为止.输入输出格式输入格式:一个自然数n(n<=1000)输出格式:一个整数,表示具有该性质...原创 2018-02-27 23:46:04 · 1641 阅读 · 1 评论 -
选数(洛谷-P1036)
题目描述已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=223+7+19=297+12+19=383+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种的和为...原创 2018-02-27 23:59:40 · 1218 阅读 · 0 评论 -
火柴棒等式(洛谷-P1149)
题目描述给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棍拼出的整数(若该数非零,则最高位不能是0)。用火柴棍拼数字0-9的拼法如图所示:注意:加号与等号各自需要两根火柴棍 如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0) n根火柴棍必须全部用上输入输出格式输入格式:共一行,又一个整数n(n<=2...原创 2018-02-28 00:00:22 · 1431 阅读 · 0 评论 -
幂次方(洛谷-P1010)
题目描述任何一个正整数都可以用2的幂次方表示。例如137=2^7+2^3+2^0同时约定方次用括号来表示,即a^b可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2+2+2^0(2^1用2表示),并且3=2+2^0所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315...原创 2018-07-06 17:50:39 · 947 阅读 · 0 评论 -
进制转换(洛谷-P1017)
题目描述我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123 可表示为1*10^2+2\*10^1+3*10^0这样的形式。与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数RR或...原创 2018-08-16 18:37:52 · 1237 阅读 · 0 评论 -
2的幂次方表示(信息学奥赛一本通-T1208)
【题目描述】任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=210+28+25+2+1所以...原创 2018-05-10 23:44:38 · 6434 阅读 · 1 评论 -
逆波兰表达式(信息学奥赛一本通-T1198)
【题目描述】逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。【输入】输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。【输...原创 2018-05-09 23:45:05 · 8341 阅读 · 0 评论 -
分解因数(信息学奥赛一本通-T1200)
【题目描述】给出一个正整数aa,要求分解成若干个正整数的乘积,即a=a1×a2×a3×...×an,并且1<a1≤a2≤a3≤...≤an,问这样的分解的种数有多少。注意到a=a也是一种分解。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1<a<32768)。【输出】n行,每行输出对应一个输入。输出应是一个正整数,...原创 2018-05-09 23:56:20 · 6604 阅读 · 1 评论 -
因子分解(信息学奥赛一本通-T1210)
【题目描述】输入一个数,输出其素因子分解表达式。【输入】输入一个整数 n (2≤n<100)。【输出】输出该整数的因子分解表达式。表达式中各个素数从小到大排列。如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。【输入样例】60【输出样例】2^2*3*5【源程序】#include<ios...原创 2018-05-10 23:38:52 · 4766 阅读 · 0 评论 -
求最大公约数问题(信息学奥赛一本通-T1207)
【题目描述】给定两个正整数,求它们的最大公约数。【输入】输入一行,包含两个正整数(<1,000,000,000)。【输出】输出一个正整数,即这两个正整数的最大公约数。【输入样例】6 9【输出样例】3【源程序】#include<iostream>#include<cstdio>#include<cstdlib&...原创 2018-05-10 23:28:54 · 6664 阅读 · 1 评论 -
fraction(HDU-6624)
Problem DescriptionMany problems require printing the probability of something. Moreover, it is common that if the answer isa/b, you should outputa×b^(−1)(modp)(pis a prime number). In these pr...原创 2019-10-08 14:48:21 · 203 阅读 · 0 评论