蓝桥杯 算法练习 数的划分

来源:互联网 发布:java中subtract 编辑:程序博客网 时间:2024/05/22 12:07

这个题目感觉到了用动态规划,但是奈何组合数学的不好,没有写出状态转移方程

参考一个博主的博客,写出了满分代码,还特意搜了一下斯特林数,学到了学到了


详细解答在博主的博客里

链接如下


https://www.cnblogs.com/wengsy150943/p/5509787.html


这是一道不太一样的dp题,他的边界在递推的中间,而且还要注意每一维度的范围,否则知道状态转移方程也写不出来

算是比一般dp要难一些的dp了吧


记下来备查



满分代码如下

#include <iostream>#include <memory.h>using namespace std;int dp[201][201];  //注意 数组的第二维度的范围要和第一维度一样 要不然会出错int main(){int n,m;cin>>n>>m;memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){if(i==j){dp[i][j]=1;}else dp[i][j]=dp[i-j][j]+dp[i-1][j-1];}}cout<<dp[n][m];return 0; } 


原创粉丝点击