博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1342 Lotto 【深搜】
阅读量:5132 次
发布时间:2019-06-13

本文共 2762 字,大约阅读时间需要 9 分钟。

Lotto

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1411    Accepted Submission(s): 697
Problem Description
In a Lotto I have ever played, one has to select 6 numbers from the set {1,2,...,49}. A popular strategy to play Lotto - although it doesn't increase your chance of winning - is to select a subset S containing k (k>6) of these 49 numbers, and then play several games with choosing numbers only from S. For example, for k=8 and S = {1,2,3,5,8,13,21,34} there are 28 possible games: [1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ... [3,5,8,13,21,34].
Your job is to write a program that reads in the number k and the set S and then prints all possible games choosing numbers only from S.
 
Input
The input file will contain one or more test cases. Each test case consists of one line containing several integers separated from each other by spaces. The first integer on the line will be the number k (6 < k < 13). Then k integers, specifying the set S, will follow in ascending order. Input will be terminated by a value of zero (0) for k.
 
Output
For each test case, print all possible games, each game on one line. The numbers of each game have to be sorted in ascending order and separated from each other by exactly one space. The games themselves have to be sorted lexicographically, that means sorted by the lowest number first, then by the second lowest and so on, as demonstrated in the sample output below. The test cases have to be separated from each other by exactly one blank line. Do not put a blank line after the last test case.
 
Sample Input
 
7 1 2 3 4 5 6 7 8 1 2 3 5 8 13 21 34 0
 
Sample Output
 
1 2 3 4 5 6 1 2 3 4 5 7 1 2 3 4 6 7 1 2 3 5 6 7 1 2 4 5 6 7 1 3 4 5 6 7 2 3 4 5 6 7 1 2 3 5 8 13 1 2 3 5 8 21 1 2 3 5 8 34 1 2 3 5 13 21 1 2 3 5 13 34 1 2 3 5 21 34 1 2 3 8 13 21 1 2 3 8 13 34 1 2 3 8 21 34 1 2 3 13 21 34 1 2 5 8 13 21 1 2 5 8 13 34 1 2 5 8 21 34 1 2 5 13 21 34 1 2 8 13 21 34 1 3 5 8 13 21 1 3 5 8 13 34 1 3 5 8 21 34 1 3 5 13 21 34 1 3 8 13 21 34 1 5 8 13 21 34 2 3 5 8 13 21 2 3 5 8 13 34 2 3 5 8 21 34 2 3 5 13 21 34 2 3 8 13 21 34 2 5 8 13 21 34 3 5 8 13 21 34

简单的深搜,话说这题的输出格式真的好奇葩啊。。

#include 
int arr[14], vis[14], n, store[6], id, blank;void DFS(int k){ if(id == 6){ for(int i = 0; i < 6; ++i) if(i == 0) printf("%d", store[i]); else printf(" %d", store[i]); printf("\n"); return; } for(int i = k; i < n; ++i){ if(!vis[i]){ store[id++] = arr[i]; vis[i] = 1; DFS(i + 1); vis[i] = 0; --id; } }}int main(){ while(scanf("%d", &n), n){ for(int i = 0; i < n; ++i){ scanf("%d", arr + i); vis[i] = 0; } if(blank) printf("\n"); id = 0; DFS(0); ++blank; } return 0;}

转载于:https://www.cnblogs.com/mengfanrong/p/4302572.html

你可能感兴趣的文章
在UC浏览器打开链接唤醒app,假设没有安装该app,则跳转到appstore下载该应用
查看>>
skozrloug
查看>>
D. Flowers Codeforces Round #271(div2)
查看>>
表单重复提交
查看>>
HDU2767 Proving Equivalences(scc)
查看>>
shell脚本函数与数组
查看>>
HDU - 2825(AC自动机+状态压缩DP(需要优化))
查看>>
论Nim中的 proc 和 method
查看>>
Arch linux配置指南
查看>>
external panel
查看>>
【luogu2667】 超级质数 - DFS
查看>>
Bash快捷键
查看>>
spring相关文档地址
查看>>
happy in java之io流简介
查看>>
第六课 用通配符进行过滤
查看>>
自动代理生成器
查看>>
使用monkey技术修改python requests模块
查看>>
Binary Search Tree analog
查看>>
win7虚拟机MAC系统
查看>>
【优化】前端优化的几种常用方法(持续更新)
查看>>