
递推
递推
阿聊
愿我千帆过尽,归来仍是少年
展开
-
hdu2041
题目这道题以前也看到过,但是没有写出来,我刚开始以为用循环遍历一边就可以了,结果我错了,没想到是用的斐波拉契推出来的,用的是递推的思想。站在楼梯的第n级想一下,前一步是从哪里来的,问题就清楚了。由于每次只能上一级或两级,那么f(n)=f(n-2)+f(n-1)。这不就是一个菲波拉契数列吗?就是一个递推问题?开始时候是站在第1级台阶上,所以数列的开原创 2017-08-04 20:45:42 · 574 阅读 · 0 评论 -
hdu 2044 一只小蜜蜂
题目这道题应该是个水题,看到他的第一眼就觉得是找规律的题,一定是和斐波拉契数列有关,但是找规律的时候找错了,先打个表然后还有一个地方注意的是,数组要用__int64 或者 long long 定义,不然在1 -> 45左后时会溢出。补充一个标识符,老是容易搞错long %dlong long %lldfloat %fdouble %lf__int64 %I6原创 2017-09-12 11:03:21 · 214 阅读 · 0 评论 -
hdu 2048 神上帝以及老天爷
题目解题思路: 典型的错排题目 首先求出所有的拿错的情况,然后求出错排的所有情况,以前者除以后者就是百分比 现在求对应的所有都拿错的情况。容易知道,f(1)=0,f(2)=1 然后,对于N个人,有n-1个人拿错票和n-2个人拿错票的情况 ① 当有n-1个拿错票时,在加入一个人,只要第n个人和前面任意的n-1个人其中一个调换票原创 2017-09-12 11:51:00 · 307 阅读 · 0 评论 -
hdu 2049 不容易系列之考新郎 && 对错排的详解
题目错排: 当n个编号元素放在n个编号位置,错排的方法数记着D(n)⒈把第n个元素放在一个位置,比如位置k,一共有(n-1)种方法;⒉放编号为k的元素,这时有两种情况:1°把它放到位置n,那么,对于剩下的(n-1)个元素,由于第k个元素放到了位置n,剩下(n-2)个元素就有D(n-2)种方法;2°第k个元素不把它放到位置n,这时,对于这(n-1)个元素,有D(n-1)种方法...原创 2017-09-12 14:56:35 · 416 阅读 · 0 评论 -
hdu 2190 悼念512汶川大地震遇难同胞——重建希望小学
题目这道题拿到的时候拼凑了一会,感觉挺难的,然后博客说是:递推,我觉得递推其实就是找规律。这是别人的思路:对于n米的长度,可以是由n-1长度加1而来,对于增加的1,只有三块1*1的砖一种铺法;还可以是由n-2唱的加2而来,对于增加的2,有一块2*2和两块1*1两种铺法(2*2在上或在下)于是得递推公式为a[n]=a[n-1]+2*a[n-2];下面是代码,看吧,就是这么简单原创 2017-10-16 13:07:57 · 448 阅读 · 0 评论 -
hdu2048神、上帝以及老天爷
http://acm.hdu.edu.cn/showproblem.php?pid=2048用的是错排思想:参见错排思想要注意的是:sum,和b[ ]都要定义成double ,不然就错了#include int main(){int a,i,c;double sum;double b[25];scanf("%d",&a);b[1]=0;b[2原创 2017-05-05 09:21:41 · 333 阅读 · 0 评论 -
hdu 2047简单递推公式
http://acm.hdu.edu.cn/showproblem.php?pid=2047解题思路:很简单的地推公式问题,给一个n,在这n个位置上面放 'E' '0' 'F',这三个字符,问可以拼出多少不同的字符来,排除有‘0''O'相连的情况。当n位取'O'的时候,那么n-1位就只能去'E''F'这两种可能,对于后面n-2之后的位置就没有任何的限定了。。。所原创 2017-05-04 16:59:07 · 330 阅读 · 0 评论 -
hdu 2046 骨牌铺方格
算法:N个前面有二种做法,1.前面做好了N-1个,则再加一个格子只有一种做法,(N-1)*12.前面N-2个已经排好,再加二个格子,只有一种做法(横排,若是竖排则与第一种做法相同),(N-1)*1加法原理f(n)=f(n-1)+f(n-2)#include int main(){int a,i;double s[51];s[1]=1;s[2]=2原创 2017-05-04 16:08:19 · 343 阅读 · 0 评论 -
hdu 2045 不容易系列之(3)—— LELE的RPG难题
用递归现在考虑n>3的情况,若第n-1个格子和第一个格子不同,则有f(n-1)种情况;若第n-1个格子和第1个格子相同,则第n-2个格子和第一个格子必然不同,此时为f(n-2)再乘第n-1个格子的颜色数,很显然第n-1个格子可以是第一个格子(即第n-2个格子)的颜色外的另外两种,这样为2*f(n-2);因此总的情况为f(n)=f(n-1)+2*f(n-2);原创 2017-05-04 15:45:33 · 217 阅读 · 0 评论