![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法——递推
Alex_McAvoy
想要成为渔夫的猎手
展开
-
基础算法 —— 递推算法
【概述】递推算法:通过已知条件,利用相邻的数据项间的关系(即:递推关系),得出中间推论,直至得到结果的算法。 递推关系:给定一个数的序列H0,H1,…,Hn,若存在整数N0,使当n>N0时,可以用=/>/<将Hn与其前面的某些项Hi(0<i<n)联系起来。 特点:避开了求通项公式的麻烦,把一个复杂问题的求解,分解成了连续的若干简单运算。 基本思想:把一个复杂...原创 2018-04-23 20:48:32 · 2721 阅读 · 1 评论 -
Sumsets(POJ-2229)
Problem DescriptionFarmer John commanded his cows to search for different sets of numbers that sum to a given number. The cows use only numbers that are an integer power of 2. Here are the possible...原创 2018-07-28 20:41:21 · 273 阅读 · 0 评论 -
Moo Volume(POJ-2231)
Problem DescriptionFarmer John has received a noise complaint from his neighbor, Farmer Bob, stating that his cows are making too much noise.FJ's N cows (1 <= N <= 10,000) all graze at var...原创 2018-07-29 08:56:22 · 294 阅读 · 0 评论 -
Cantor表(洛谷-P1014)
题目描述现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:1/1 1/2 1/3 1/4 1/5 …2/1 2/2 2/3 2/4 …3/1 3/2 3/3 …4/1 4/2 …5/1 …… 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…输入输出格式输入格式:...原创 2018-03-03 14:35:57 · 1285 阅读 · 0 评论 -
台阶问题(洛谷-P1192)
题目描述有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式。输入输出格式输入格式:两个正整数 N,K。输出格式:一个正整数,为不同方式数,由于答案可能很大,你需要输出ans mod100003后的结果。输入输出样例输入样例#1:5 2输出样例#1:8源代码#includ...原创 2018-08-19 22:20:00 · 938 阅读 · 2 评论 -
Numbers on the Chessboard(CF-1027B)
Problem DescriptionYou are given a chessboard of size n×n. It is filled with numbers from 1to n^2in the following way: the first ⌈n^2/2⌉ numbers from 1 to ⌈n^2/2⌉ are written in the cells with ev...原创 2018-08-24 11:05:55 · 394 阅读 · 0 评论 -
猜数字(HDU-2178)
Problem Description A有一个数m,B来猜。B每猜一次,A就说太大、太小或对了。问B猜n次可以猜到的最大数。Input 第1行是整数T,表示有T组数据,下面有T行每行一个整数n (1 ≤ n ≤ 30)Output 猜n次可以猜到的最大数Sample Input213Sa...原创 2018-03-15 21:35:40 · 1025 阅读 · 0 评论 -
钥匙计数之一(HDU-1483)
Problem Description一把锁匙有N个槽,槽深为1,2,3,4。每锁匙至少有3个不同的深度且至少有1对相连的槽其深度之差为3。求这样的锁匙的总数。Input本题无输入Output对N>=2且N<=31,输出满足要求的锁匙的总数。Sample Input无Sample OutputN=2: 0N=3: 8N=4: 64N=5:...原创 2018-10-04 01:01:46 · 531 阅读 · 0 评论 -
Binary Tree(HDU-5573)
Problem DescriptionThe Old Frog King lives on the root of an infinite tree. According to the law, each node should connect to exactly two nodes on the next level, forming a full binary tree.Sinc...原创 2019-01-17 19:12:11 · 262 阅读 · 0 评论 -
处女座与汉明距离
【题目描述】定义两个数之间的汉明距离为两个数异或值的二进制中1的个数。问是否存在一个 0-2^(n-1) 的排列 a,使得相邻两个数 ai 和 ai+1 的汉明距离均为 m,a2^n和 a1 也算相邻。【输入描述】一行,两个数n和m2<=n<=20, 1<=m<n【输出描述】如果存在这样的排列,第一行输出"YES",下面2n行,每行一个整数,输...原创 2019-07-15 18:08:45 · 301 阅读 · 0 评论 -
Coloring Dominoes(Atcoder-2697)
Problem DescriptionWe have a board with a 2×N grid. Snuke covered the board with N dominoes without overlaps. Here, a domino can cover a 1×2 or 2×1 square.Then, Snuke decided to paint these domin...原创 2019-06-20 16:36:16 · 387 阅读 · 0 评论 -
踩方格(信息学奥赛一本通-T1196)
【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。【输入】允许在方格上行走的步数n(n≤20)。【输出】计算出的...原创 2018-05-04 16:20:06 · 5988 阅读 · 1 评论 -
移动路线(信息学奥赛一本通-T1194)
【题目描述】X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动...原创 2018-05-04 16:11:24 · 6354 阅读 · 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 · 4438 阅读 · 0 评论 -
母牛的故事(HDU-2018)
Problem Description 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?Input 输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。<br>n=0表示输入数据的结束,不做处理。Output...原创 2018-03-29 19:52:54 · 603 阅读 · 0 评论 -
折线分割平面(HDU-2050)
Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。Input 输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线...原创 2018-03-29 19:57:50 · 289 阅读 · 0 评论 -
统计问题(HDU-2563)
Problem Description 在一无限大的二维平面中,我们做如下假设:每次只能移动一格 不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走) 走过的格子立即塌陷无法再走第二次求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。Input 首先给出一个正整数C,表示有C组测试数据...原创 2018-03-29 20:02:35 · 426 阅读 · 0 评论 -
昆虫繁殖(信息学奥赛一本通-T1312)
【题目描述】科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。【输入】x,y,z的数值。【输出】过Z个月以后,共有成虫对数。【输入样例】1 2...原创 2018-04-25 20:50:19 · 9033 阅读 · 9 评论 -
位数问题(信息学奥赛一本通-T1313)
【题目描述】在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。【输入】输入包含一行,一个字符串,长度不超过1000。读入一个数N。【输出】输出有多少个数中有偶数个数字3。【输入样例】2【输出样例】73【源程序】#include<iostream>#include<cstdi...原创 2018-04-25 20:51:58 · 6881 阅读 · 4 评论 -
过河卒(信息学奥赛一本通-T1314)
【题目描述】棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出...原创 2018-04-25 20:53:00 · 5701 阅读 · 3 评论 -
Pell数列(信息学奥赛一本通-T1189)
【题目描述】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-04-25 20:56:14 · 6514 阅读 · 0 评论 -
放苹果(信息学奥赛一本通-T1192)
【题目描述】把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-03 22:31:37 · 6973 阅读 · 2 评论 -
上台阶(信息学奥赛一本通-T1190)
【题目描述】楼梯有n(71>n>0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。【输入】输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。【输出】每一行输出对应一行输入的结果,即为走法的数目。【输入样例】12340【输出样例】1247【源程序】#in...原创 2018-05-03 22:45:35 · 10849 阅读 · 8 评论 -
吃糖果(信息学奥赛一本通-T1193)
【题目描述】名名的妈妈从外地出差回来,带了一盒好吃又精美的巧克力给名名(盒内共有 N 块巧克力,0<N<20)。妈妈告诉名名每天可以吃一块或者两块巧克力。假设名名每天都吃巧克力,问名名共有多少种不同的吃完巧克力的方案。例如:如果N=1,则名名第1天就吃掉它,共有1种方案;如果N=2,则名名可以第1天吃1块,第2天吃1块,也可以第1天吃2块,共有2种方案;如果N=3,则名名第1天可...原创 2018-05-04 16:08:14 · 3251 阅读 · 0 评论 -
Blackboard Fibonacci(CF-217B)
Problem DescriptionFibonacci numbers are the sequence of integers: f0 = 0, f1 = 1, f2 = 1, f3 = 2, f4 = 3, f5 = 5, ..., fn = fn - 2 + fn - 1. So every next number is the sum of the previous two.B...原创 2019-07-23 13:41:19 · 332 阅读 · 0 评论