【深度优先搜索】计蒜客:蓝跳跳

深度优先搜索+记忆化搜索:

int dfs(len,flag):以及跳出的长度和上一次跳的距离是否大于p

if(len==0)return 0;
if(len==l)return1;
res=0;
if(flag==0)//上一步跳的距离小于p,那么这一次跳的距离为1~k
{
for(i:1~p-1)res+=dfs(len+i,0);
for(i:p~k)res+=dfs(len+i,1);
}else{
for(i:1~p-1)res+=dfs(len+i,0);
}
return res;
代码
#include
using namespace std;
int k;
int p;
int l;

int dfs(long long len,int flag){
if(len>l)return 0;
if(len==l)return 1;
int res=0;
if(flag==0){
for(int i=1;i

【深度优先搜索】计蒜客:蓝跳跳最先出现在Python成神之路

版权声明:
作者:siwei
链接:https://www.techfm.club/p/29015.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>