标签:acm 输出 现在 std 来源 == 需要 geo sizeof
把一个正整数m分成n个正整数的和,有多少种分法?
例:把5分成3个正正数的和,有两种分法:
1 1 3
1 2 2
2 5 2 5 3
2 2
#include <bits/stdc++.h> using namespace std; int dp[15][15]; //dp[i][j]: i表示总数,j表示第几个盘子 int find(int n, int m){ if(n < 0 || m < 0) return 0; if(m == 0 && n > 0) return 0; if(m == 0 && n >= 0){ return dp[n][m] = 1; } if(dp[n][m]){ //如果已经填充过,不需要再次进行 return dp[n][m]; } return dp[n][m] = find(n - m, m) + find(n, m - 1); } int main(){ int t; cin >> t; while(t--){ int n, m; memset(dp, 0, sizeof(dp)); cin >> n >> m; cout << find(n - m, m) << endl; } return 0; }
标签:acm 输出 现在 std 来源 == 需要 geo sizeof
原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/9154746.html