题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028
题目大意:整数划分
解题思路:这道题给出了需要组合的结果N,因子的个数N,但每个多项式的项数不确定。
代码如下:
#include <stdio.h>
#include <string.h>
const int MAX=125;
int c1[MAX],c2[MAX];
int main()
{
int N;
while(~scanf("%d",&N))
{
memset(c1,0,sizeof(c1));
c1[0]=1;
for(int i=1; i<=N; i++)//循环每个因子
{
memset(c2,0,sizeof(c2));
for(int j=0;j*i<=N; j++)//每个因子的每一项
for(int k=0; k+j*i<=N; k++)//循环c1数组的每一项
c2[k+j*i] += c1[k];
memcpy(c1,c2,sizeof(c2));
}
printf("%d\n",c1[N]);
}
return 0;
}
本文详细介绍了整数划分问题的求解思路,并通过C++代码实例展示了具体实现过程。利用动态规划方法,逐步构建解决方案,最终输出指定整数N的所有可能组合。
1892

被折叠的 条评论
为什么被折叠?



