递推趣题

在网上看到一个关于递推求解的课件,感觉里面的问题很经典有趣,层层递进,因此在这里记录一下。

1、在一个平面上有一个圆和n条直线,这些直线中的每一条在圆内同其他直线相交,假设没有三条直线相交于一点,试问这些直线将圆分成多少区域。

2、平面上有n条折线,问这些折线最多能将平面分割成多少块?(已知1—>2,2—>7)

3、设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线能把平面分割成的区域个数。

4、在2*n的长方形方格中,用n个1*2的骨牌铺满方格,例如n = 3 时,为2*3方格,骨牌的铺设方案有三种,问对于n,铺设方案的总数是多少。

5、有一个1*n的一个长方形,用1*1、1*2、1*3的骨牌铺满方格。例如当n = 3 时为1*3的方格,此时用1*1,1*2,1*3的骨牌铺满方格,共有四种铺法。问对于n,铺设方案的总数是多少。

6、There are many students in PHT School. One day, the headmaster whose name is PigHeader wanted all students stand in a line. He prescribed that girl can not be in single. In other words, either no girl in the queue or more than one girl stands side by side. The case n=4 (n is the number of children) is like FFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMM Here F stands for a girl and M stands for a boy. The total number of queue satisfied the headmaster’s needs is 7. Can you make a program to find the total number of queue with n children? 懒得翻译了:~

7、有排成一行的n个方格,用红、绿、蓝三原色给每个格子上色,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色。求全部的满足要求的涂法。

8、某人写了n封信,还有n个信封,如果所有的信都装错了信封,求共有多少种可能的情况?

————————————————————————^^我是漂亮的分割线^^————————————————————————

参考答案:

1、F(1) = 2; F(n) = F(n-1) + n 通项:F(n) = n(n+1)/2 + 1

2、F(1) = 2; F(n) = F(n-1) + 4(n-1) + 1 通项:F(n) = 2n^2 - n + 1

3、F(1) = 2; F(n) = F(n-1) + 2(n-1) 通项:F(n) = n^2 - n + 2

4、考虑最后一个格的铺法,容易得到:F(1) = 1, F(2) = 2; F(n) = F(n-1) + F(n-2), n≥3

5、仍然是考虑最后一个格的铺法,有:F(1) = 1, F(2) = 2, F(3) = 4; F(n) = F(n-1) + F(n-2) + F(n-3), n≥4

6、根据最后一个人的性别分情况讨论(设F(n)表示n个人的合法队列)。如果是男生,直接站在队列的最后,有F(n-1)种情况。如果是女生,则最后两个人必须都是女生,再分类:如果队列的前n-2个人是合法的队列,在队列后面追加两个女生,有F(n-2)种情况;另外,即使前面n-2个人不是合法的队列,再加上两个女生也可能是合法队列,且不合法的地方一定是长度为n-2的队列的尾部,即F(n-4) + 1男 + 1女,这样再跟上两个女生才能成为合法队列,这种情况有F(n-4)种。

综上,有递推公式:F(1) = 1, F(2) = 2, F(3) = 4, F(4) = 7; F(n) = F(n-1) + F(n-2) + F(n-4), n>4

7、如果前面n-1个格子已经合法地涂上色,则最后一个格子只有唯一地一种涂法,有F(n-1)种方法;另外一种情况是前n-1个格子不是合法的,那么不合法的地方一定是其尾部,即第n-1个格子与第1个格子同色,那么最后一个格子有两种涂法,因此有2*F(n-2)种方法。

综上,有递推公式:F(1) = 3, F(2) = 6; F(n) = F(n-1) + 2*F(n-2), n>2

8、如果前n-1封信已经全部错装,只需从中任取一封和第n封错装,有(n-1)*F(n-1)种方式;另外如果前n-1封信中有且只有一封信没有装错(注意只能有一封,否则就呵呵了:),有(n-1)*F(n-2)种方式。

综上,有递推公式:F(1) = 0, F(2) = 1; F(n) = (n-1)*[F(n-1) + F(n-2)]。另外,它还有一个帅气的名字叫做错排公式。

PS:斐波那契数列实在太有用了,哪天有空写一下如何用生成函数求解其通项公式。

时间: 2024-10-26 02:17:33

递推趣题的相关文章

Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 E. Excellent Engineers-单点更新、区间最值-线段树 G. Growling Gears I. Interesting Integers-类似斐波那契数列-递推思维题

先写这几道题,比赛的时候有事就只签了个到. E. Excellent Engineers 传送门: 这个题的意思就是如果一个人的r1,r2,r3中的某一个比已存在的人中的小,就把这个人添加到名单中. 因为是3个变量,所以按其中一个变量进行sort排序,然后,剩下的两个变量,一个当位置pos,一个当值val,通过线段树的单点更新和区间最值操作,就可以把名单确定. 代码: 1 //E-线段树 2 #include<iostream> 3 #include<cstdio> 4 #incl

hdu 5459(递推好题)

Jesus Is Here Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)Total Submission(s): 512    Accepted Submission(s): 368 Problem Description I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't

hdu 1297 递推难题

这题的话,我能玩一年 今天做了很多递推的题,这题无疑是最复杂的 其实可以看出来,2,3,4,5为一类,不妨定义为2型,1,6为一类,定义为1型 规定num[i]为结尾是i的凹槽的数量 我们可以能轻易的推出 sum = num[1]*2+num[2]*4 现在我们开始分析这个递推式的构成 根据第n个凹槽前 能不能构成一把lock,我们将情况分为两类 A:能构成lock 1.如果当前结尾为1类,我们用‘1’分析好了(下面也是用1),n-1的结尾必然不能是‘6’,因为1和6不能直接相连,根据题意就知道

Uva 10943 - How do you add ?( 组合数公式 + 递推 )

Uva 10943 - How do you add ?( 组合数公式 + 递推 ) 题意:给定一个数N,分解韡k个数,问有多少种组合.数可以重复 (N<=100) 分析:通过组合数学将题目抽象为 N个相同的小球,放入k个不同的盒子中,且允许盒子为空然后就可以用隔板法------> ANS = C(N+M-1,M-1)隔板法--> BD然后再根据组合数的性质可以进行递推(这题数据范围比较小)----> C(A,B) = C(A-1,B) + C(A-1,B-1);预处理一遍之后即可

利用Cayley-Hamilton theorem 优化矩阵线性递推

平时有关线性递推的题,很多都可以利用矩阵乘法来解k决. 时间复杂度一般是O(K3logn)因此对矩阵的规模限制比较大. 下面介绍一种利用利用Cayley-Hamilton theorem加速矩阵乘法的方法. Cayley-Hamilton theorem: 记矩阵A的特征多项式为f(x). 则有f(A)=0. 证明可以看 维基百科 https://en.wikipedia.org/wiki/Cayley–Hamilton_theorem#A_direct_algebraic_proof 另外我在

1025 数的划分(搜索和递推方法)

难度:普及/提高- 题目类型:递推 提交次数:3 涉及知识:动规 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 输入输出格式 输入格式: n,k (6<n<=200,2<=k<=6) 输出格式: 一个整数,即不同的分法. 搜索: 代码: 1 #include<iostream> 2 using namespace std

百度之星-大搬家-递推

问题描述: 近期B厂组织了一次大搬家,所有人都要按照指示换到指定的座位上.指示的内容是坐在位置ii上的人要搬到位置jj上.现在B厂有NN个人,一对一到NN个位置上.搬家之后也是一一对应的,改变的只有位次. 在第一次搬家后,度度熊由于疏忽,又要求大家按照原指示进行了一次搬家.于是,机智的它想到:再按这个指示搬一次家不就可以恢复第一次搬家的样子了.于是,B厂史无前例的进行了连续三次搬家. 虽然我们都知道度度熊的“机智”常常令人堪忧,但是不可思议的是,这回真的应验了.第三次搬家后的结果和第一次的结果完

Jesus Is Here[递推]2015沈阳online

题目链接https://nanti.jisuanke.com/t/41175 自从百度之星初赛一上自己做出来一道打表找规律的题之后,这种膨胀的感觉让我近乎丧失理智,今天这道题我死死盯了两三个小时硬是没看出什么规律,我还是太嫩了点-,这也是我头一次做递推的题,题量还有待替高啊! 如果相对了思路(看了大佬的精彩解析https://blog.csdn.net/chenzhenyu123456/article/details/48579695),这道题就可以迎刃而解了 首先需要开一个结构体变量,用来存储

【DP】一道递推题。。。

Bob想要构造一张由n个节点构成的图.构造的过程由两步组成:首先Bob会取出n个孤立的点,并把它们从1到n编号,然后对每个节点用一种颜色染色,Bob一共可以使用K种不同的颜色.接下来Bob会在这张图中加入一些有向边,对于每一个编号范围在[2,n]的节点i,Bob有可能选择一个节点j满足j < i并且节点i与j的颜色不同,然后加入一条从i到j的有向边,对于节点i,Bob也有可能不加任何的有向边.现在你需要回答Bob有可能构造出多少种不同的图. 输入: 第一行包含三个整数n,K. 输出: 输出一个整