HDOJ 1342
2017-08-08 11:21
78 查看
经典深搜题目,水题
注意题目要求的输出,最后一组数据输出后不用再输出空行
http://acm.hdu.edu.cn/showproblem.php?pid=1342
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int s[15],k,a[15];
bool used[15];
void dfs(int num,int x){ //num记录第几个数 ,x记录扫描到s数组的当前位置
if (x==k && num<6) return;
if (num==6) {
for (int i=1;i<6;i++) printf("%d ",a[i]);
printf("%d\n",a[6]);
return;
}
for (int i=x+1;i<=k;i++){
a[num+1]=s[i];
dfs(num+1,i);
}
}
int main(){
cin>>k;
while (1){
for (int i=1;i<=k;i++){
scanf("%d",&s[i]);
}
for (int i=1;i<=k-5;i++) {
a[1]=s[i];
dfs(1,i);
}
cin>>k;
if (k!=0) printf("\n");
else break;
}
return 0;
}
注意题目要求的输出,最后一组数据输出后不用再输出空行
http://acm.hdu.edu.cn/showproblem.php?pid=1342
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
int s[15],k,a[15];
bool used[15];
void dfs(int num,int x){ //num记录第几个数 ,x记录扫描到s数组的当前位置
if (x==k && num<6) return;
if (num==6) {
for (int i=1;i<6;i++) printf("%d ",a[i]);
printf("%d\n",a[6]);
return;
}
for (int i=x+1;i<=k;i++){
a[num+1]=s[i];
dfs(num+1,i);
}
}
int main(){
cin>>k;
while (1){
for (int i=1;i<=k;i++){
scanf("%d",&s[i]);
}
for (int i=1;i<=k-5;i++) {
a[1]=s[i];
dfs(1,i);
}
cin>>k;
if (k!=0) printf("\n");
else break;
}
return 0;
}
相关文章推荐
- hdoj--1342--Lotto(dfs)
- hdoj 1342 Lotto 【全排列(从n个数中选m个数按字典需排列)】
- hdoj--1342--Lotto(dfs)
- hdoj1342
- hdoj 1342 Lotto 【经典DFS】 【附上三种DFS写法】
- hdoj_1342Lotto
- hdoj_1342Lotto
- HDOJ1342lotto(DFS)
- hdoj1342 Lotto
- hdoj1342Lotto【dfs】
- HDOJ 题目1342Lotto(DFS)
- hdoj 1342 Lotto
- hdoj_1342Lotto
- hdoj 1342 Lotto【dfs】
- HDOJ 1342 DFS
- HDOJ 1342 Lotto
- HDOJ1342 Lotto(DFS,回溯)
- hdoj 4767 Bell 【矩阵快速幂 + CRT】
- (HDOJ 1060)Leftmost Digit
- HDOJ 3308 LCIS