记忆化搜索wa了一半,没看懂QAQ
查看原帖
记忆化搜索wa了一半,没看懂QAQ
143291
真香警告AQA楼主2024/11/12 13:43

写了个记忆化搜索发现wa了一半的点(输入为47就wa了不是炸数据大小的问题),没看懂哪个地方思路错了,求各位大犇看看

#include <stdio.h>
#include <string.h>
#define N 5050

typedef unsigned long long ull ;

ull memo[N];

//从x阶到y阶走法总数
int cal(int x,int y){
    ull sum=0;
    
    if(memo[x]!=0) return memo[x];

    if(y==0) return 0;
    if(x==y-1)    return 1;
    if(x==y)    return 1;

    sum=cal(x+1,y)+cal(x+2,y);

    memo[x]=sum;
    return sum;
}

int main(){
    int n;
    memset(memo,0,sizeof(memo));//抱着死马当活马医的态度写了个初始化
    scanf("%d",&n);

    printf("%d",cal(0,n));
    return 0;
}

2024/11/12 13:43
加载中...