比赛 NOIP2015普及组练习 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 Riolu 运行时间 0.022 s
代码语言 C++ 内存使用 0.33 MiB
提交时间 2015-11-05 19:43:50
显示代码纯文本
#include<cstdio>
int f[100][100];
int n,m,i,max;
void dfs(int step,int num,int maxn){
	if (step == m+1)
	{
		if(num == 0)
		{
			i++;maxn=1;return;
			}
		return;
		}
	for(int j=maxn;j<=num;j++)
	{
		f[i][step]=j;
		dfs(step+1,num-j,j);
		}
		return ;
	}
int main()
{
	freopen("dataa.in","r",stdin);
	freopen("dataa.out","w",stdout);
	scanf("%d%d",&n,&m);
	i=1;
	dfs(1,n,1);
	i--;
	printf("%d\n",i);
	for(int k=1;k<=i;k++){
		if(f[k][1]==0)
			f[k][1]=f[k-1][1];
			printf("%d",f[k][1]);
			
		for(int j=2;j<=m;j++){
			if(f[k][j]==0)
				f[k][j]=f[k-1][j];
			printf(" %d",f[k][j]);
		}
		printf("\n");
		}
	return 0;
	}