原题链接
#include <stdio.h>
int n, r;
bool hasSelected[10];
int store[10];
void print(){
for(int i = 1; i <= r; ++i)
printf("%d", store[i]);
printf("\n");
}
void DFS(int k){
if(k > r){
print();
return;
}
for(int i = n; i; --i){
if(k == 1 || i < store[k-1] && !hasSelected[i]){
store[k] = i;
hasSelected[i] = 1;
DFS(k + 1);
hasSelected[i] = 0;
}
}
}
int main(){
while(scanf("%d%d", &n, &r) == 2){
for(int i = 0; i != 10; ++i) hasSelected[i] = 0;
DFS(1);
}
return 0;
}
| 运行号 | 用户 | 题目 | 结果 | 时间 | 内存 | 语言 | 提交时间 |
|---|
|
805253 | 长木 | 组合数 | Accepted | 0 | 232 | C/C++ | 04-10 08:37:30 |