比赛 搜索题... 评测结果 AAAAAAAAAA
题目名称 分组 最终得分 100
用户昵称 Ezoi_XY 运行时间 0.009 s
代码语言 C++ 内存使用 0.30 MiB
提交时间 2014-11-04 18:59:00
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. using namespace std;
  4. int n, m, x[11], f[25][15], a[95][11], tot;
  5. void dfs(int p, int l, int s){
  6. if (p == m){
  7. x[p] = n - s;
  8. memcpy(a[tot++], x, sizeof(x));
  9. return;
  10. }
  11. for (int i(l); s + i * (m - p + 1) <= n; ++i) dfs(p + 1, x[p] = i, s + i);
  12. }
  13. int main(){
  14. freopen("dataa.in", "r", stdin);
  15. freopen("dataa.out", "w", stdout);
  16. int i, j;
  17. scanf("%d%d", &n, &m);
  18. f[0][0] = 1;
  19. for (i = 1; i <= n; ++i)
  20. for (j = i < m? i: m; j; --j)
  21. f[i][j] = f[i - j][j] + f[i - 1][j - 1];
  22. printf("%d\n", f[n][m]);
  23. dfs(1, 1, 0);
  24. for (i = 0; i < tot; ++i){
  25. for (j = 1; j < m; ++j) printf("%d ", a[i][j]);
  26. printf("%d\n", a[i][m]);
  27. }
  28. return 0;
  29. }