首页 > 代码库 > uva11137Dp
uva11137Dp
题意:给出n,问将n拆成若干个正整数只和,有多少种方法。
#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <string>#include <iostream>#include <map>#include <cstdlib>#include <list>#include <set>#include <queue>#include <stack>#include <math.h>using namespace std;typedef long long LL;const LL maxn = 10000;const LL maxm = 24;LL dp[maxm + 100][maxn + 100];void init(){ memset(dp, 0, sizeof(dp)); dp[0][0] = 1; for (LL i = 1; i <= maxm; i++){ for (LL j = 0; j <= maxn; j++){ for (LL k = 0; j + k*i*i*i <= maxn; k++){ dp[i][j + k*i*i*i] += dp[i - 1][j]; } } }}int main(){ LL n; init(); while (cin >> n){ cout << dp[maxm][n] << endl; } return 0;}
uva11137Dp
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。