|
发表于 2024-4-9 09:10:15
|
显示全部楼层
您的代码存在一些问题,导致没有输出结果。首先,在#include语句后面应该添加<cstring>头文件,以便使用memset函数对数组进行初始化。另外,在调用dfs函数时传入的参数有误,应该是dfs(0, n, m)而不是dfs(n, m, 2)。最后,在输出结果之后,应该返回结果给主函数。
以下是修复后的代码:
#include <iostream>
#include <cstring>
using namespace std;
int n,m,ans=0,dp[1005][105][105];
long long mod=1000000007;
int dfs(int d,int h,int j){
if(d == 0 && h == 1 && j == 1)
return 1;
if(dp[d][h][j])
return dp[d][h][j];
int result = 0;
if(h >= j)
result = dfs(d-1,h-j,j);
if(j >= 2)
result = (result + dfs(d,h,j-1)) % mod;
return dp[d][h][j] = result;
}
int main(){
memset(dp,0,sizeof(dp));
cin >> n >> m;
int result = dfs(0,n,m);
cout << result << endl;
return 0;
}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|