![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
他们叫我无极
普普通通,简简单单,真真切切,实实在在。
展开
-
HDU 1465 - 不容易系列之一
知识点:递归 - 错排问题 错排问题的通项公式:f[n]=(n-1)*(f[n-1]+f[n-2]); 定义数组f[n]表示n封信时错排的情况数,在f[n-1]的基础上再加一封信并错排分两步: 第一步:把第n封信放在前面第i(i任意)封信的信封里,共n-1种情况。 第二步:把第i封信放入信封,有两种case: case 1:如果把i放到第n个信封里,原创 2011-11-10 11:42:19 · 307 阅读 · 0 评论 -
HDU 2047 - 阿牛的EOF牛肉串
知识点:递归 分别定义两个数组:a[n],b[n]。a[i]表示第i个为'O'时的情况数,b[i]表示第i个不为'O'时的情况数,则第i个总的情况数就等于a[i]+b[i]; 从第一个开始: i=1 a[1]=1;b[1]=2; i=2 a[2]=b[1];b[2]=2*(a[1]+b[1); i=3 ...... ........... i=n a[n]=b[n原创 2011-11-10 11:33:11 · 61 阅读 · 0 评论 -
HDU 1297 - Children’s Queue
知识点:递归 + 大数加法 递归思路: 设f[n]表示n个人时合法(女生不能单独出现)的情况数; 1、当第n个人是男生时,只需前n-1个人排列合法,即:f[n-1]; 2、当第n个人是女生时,第n-1个也必须是女生,且前n-2个人排列可以合法也可以不合法,所有两种case: case 1:前n-2个人排列合法,即:f[n-2]; case 2:前n-2原创 2011-11-10 11:12:44 · 287 阅读 · 0 评论 -
HDU 1997 - 汉诺塔VII
知识点:递归 递归思路: 设开始时盘子全在 A 柱上,要把盘子移到 C 柱上,中间柱是 B。 首先,我们来判断一下是不是初末状态,即盘子全在 A 上或全在 C 上,这一定是合法的。 其次,我们要对每种状态中最大的那个盘子的位置进行判断。因为我们知道,汉诺塔最大的那个盘子不可能在 B 上,只可能在 A 或者 C 上面。所以有3种情况: case 1:如果在 B 上面,一定是非法的,即可原创 2011-11-10 10:42:45 · 1403 阅读 · 0 评论