1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int b[110000][11], a[11], S, ans; void dfs(int x, int sum) { if(x == 10) { if(S - sum >= 1 && S - sum <= 3) { ans++; a[10] = S - sum; memcpy(b[ans], a, sizeof(a)); } } else { for(int i = 1; i <= 3; i++) { a[x] = i; if(sum + i <= S) dfs(x + 1, sum + i); a[x] = 0; } } } int main() { scanf("%d", &S); memset(a, 0, sizeof(a)); ans = 0; dfs(1, 0); printf("%d\n", ans); for(int i = 1; i <= ans; i++) { for(int j = 1; j < 10; j++) printf("%d ", b[i][j]); printf("%d\n", b[i][10]); } return 0; }
- 1
信息
- ID
- 845
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 156
- 已通过
- 50
- 上传者