递归专项
strawberry zong
这个作者很懒,什么都没留下…
展开
-
Red and Black(DFS经典题)
题意:在一个长方形的区域,有黑色和红色两种方块,一个人站在一块黑色的方块上,他可以向四个方向移动,但是每次移动只能移动到另一个黑色的方块上,问共有多少黑色的方块。 #include<iostream> #include<cmath> #include<cstring> using namespace std; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int vis[21][21]; int ans; char ch[21]...原创 2020-08-01 10:03:14 · 438 阅读 · 0 评论 -
Fractal(递归输出图形)
题解:就是根据输入的n值来递归输出图形,我们不难发现在n的情况下,图形的宽度为3^(n-1),假设起始坐标为x,y,我们可以发现当k为上一级图形的宽度时,我们递归该图形的五个部分,则分别为(n-1,x,y+2k),(n-1,x+k,y+k),(n-1,x+2k,y),(n-1,x+2k,y+2k)。 由于n的范围很小,所以我们可以预处理出图案。 #include<iostream> #include<cmath> #include<cstring> using na...原创 2020-08-01 09:34:40 · 434 阅读 · 0 评论 -
放苹果
题解:首先分类讨论,找到递归的边界和公式。 1.当m<=1或者n=1的时候,这时候只有一种放法,答案为1。 2.当m<n的时候,其结果与check(m,n)是一样的。 3.当m>=n的时候,考虑如果这个时候保留一个空的盘子,那么,答案为check(m,n-1) 如果每个盘子都有苹果,那么首先我们拿出n个苹果放在n个盘子上,这个时候还有m-n个苹果还没有被分配,那么最后结果其实就与这m-n个苹果的放法一样。 所以在第三种情况下结果为check(m,n-1)+check(m-n,n)。 特别.原创 2020-07-29 21:49:50 · 109 阅读 · 0 评论