posted on 2007-09-14 02:05 流牛ζ木马 阅读(2719) 评论(9) 编辑 收藏 引用
e....你把m和n的 含义都交换了。。。害我想了半天 回复 更多评论
盘子可以为空,那m==n的时候可以return 1 吗?maleungxp@gmail.com 回复 更多评论
#include <stdio.h> int main () { int i,j,k,n,ii,t,kk,z; int a[100][100]; scanf("%d",&t); for (ii=1; ii <=t; ii++) { scanf("%d%d", &n,&kk); z=0; for (k=1; k<kk+1; k++) { for (i=0 ; i <n-k+1; i++) for (j=0; j <k+1; j++) a[i][j]=0; for (i=0; i <=n-k; i++) a[i][1]=1; for (i=0; i <=n-k;i++) for (j=2; j<=k; j++) if (i>=j) a[i][j]=a[i-j][j]+a[i][j-1] ; else a[i][j]=a[i][j-1]; z=z+a[n-k][k]; } printf("%d\n",z); } return 0; } 回复 更多评论
谢谢啦,我终于也明白了。。。 回复 更多评论
非递归算法 n<kk时出错 @haha 回复 更多评论
厉害呀,这都能联想到整数划分 回复 更多评论
错的 回复 更多评论
到底是m=1还是m=0递归结束都有道理,看你怎么理解了,我这里有解题报告http://stufever.com/?p=80 回复 更多评论
"呵呵,当时我还花了好些功夫才理解到哦,真是精妙" 精妙在哪里? 最关键的地方楼主一笔带过啦~~ 回复 更多评论
Powered by: C++博客 Copyright © 流牛ζ木马