一、题目回顾

题目链接:Lotto

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 71 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

题意:以升序的形式给定k个数,输出从中挑选6个数满足升序的所有情况。

二、解题思路

  • 两个参数,第一个保存当前搜索的位置,第二个保存已挑选的个数。

三、代码

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <cstring>
 5 using namespace std;
 6 const int maxn = 1e4+10;
 7 #define INF 0x3f3f3f3f
 8 int a[50];                //子集S
 9 int b[10];                //存放6个数
10 int k;
11 bool vis[50];
12
13 void dfs(int pos,int num)
14 {
15     if(num==6){
16         for(int i=0;i<5;i++)    printf("%d ",b[i]);
17         printf("%d\n",b[5]);
18         return;
19     }
20     for(int i=pos;i<k;i++){
21         if(!vis[i]){
22             vis[i] = 1;
23             b[num] = a[i];
24             dfs(i+1,num+1);
25             vis[i] = 0;                    //方便下一次序列继续使用
26         }
27     }
28
29 }
30 int main()
31 {
32     int kase = 0;
33     while(cin>>k && !(k==0)){
34         if(kase++)    printf("\n");        //打印空行
35         for(int i=0;i<k;i++){            //从0开始
36             scanf("%d",&a[i]);
37         }
38         memset(vis,0,sizeof(vis));
39         dfs(0,0);
40     }
41     return 0;
42 }

转载于:https://www.cnblogs.com/xzxl/p/7306290.html

DFS(6)——hdu1342Lotto相关推荐

  1. DFS(二):骑士游历问题

    在国际象棋的棋盘(8行×8列)上放置一个马,按照"马走日字"的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次.例如,下图给出了骑士从坐标(1,5)出发,游历棋盘的一种 ...

  2. 水洼数dfs(java)

    问题描述: 有一个大小为 N×M 的园子,雨后积起了水.八连通的积水被认为是连接在一起的.请求出 园子里总共有多少水洼? *限制条件N, M ≤ 100 样例:输入 N=10, M=12园子如下图 ( ...

  3. C++算法——DFS(图解)

    前言 这篇原本是两个搜索算法,但是发现BFS那个单独看的人多,所以这篇改为单独的DFS,建议先看完BFS 简介 深度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一.其别名又叫DFS,其过程 ...

  4. 【hdu1175】连连看——dfs(剪枝)

    题目: 连连看 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  5. 图的遍历——DFS(邻接矩阵)

    递归 + 标记 一个连通图只要DFS一次,即可打印所有的点. #include <iostream> #include <cstdio> #include <cstdli ...

  6. 水管工游戏:dfs(递归)

    添柴网这题好想不能评测,所以不确保代码的正确性 题目描述: 这小节有点难,看不太懂可以跳过哦. 最近小哼又迷上一个叫做水管工的游戏.游戏的大致规则是这样的.一块矩形土地被分为N * M的单位正方形,现 ...

  7. 骑士游历数组任意起点c语言,DFS(二):骑士游历问题

    在国际象棋的棋盘(8行×8列)上放置一个马,按照"马走日字"的规则,马要遍历棋盘,即到达棋盘上的每一格,并且每格只到达一次.例如,下图给出了骑士从坐标(1,5)出发,游历棋盘的一种 ...

  8. 二叉树的深搜(DFS)与广搜(BFS)

    转载自: https://blog.csdn.net/u011613367/article/details/50950408 数据结构中的有两个比较重要的算法.深度优先搜索和广度优先搜索. 二叉树中的 ...

  9. leetcode 310. Minimum Height Trees | 310. 最小高度树(图的邻接矩阵DFS / 拓扑排序)

    题目 https://leetcode.com/problems/minimum-height-trees/ 题解 方法1:图的邻接矩阵 DFS(超时) 我一想,这不就是个图嘛,于是随手敲出一个 DF ...

最新文章

  1. 【Android】3.19 示例19--全景图HelloWorld
  2. ES权威指南[官方文档学习笔记]-14 phrase search
  3. symantec 5220牛刀小试系列(二)
  4. php未定义要怎样做,php-Behat-未定义的功能步骤
  5. 酷毙了!三种风格的全屏幻灯片效果【附源码下载】
  6. 学习《css世界》笔记之loading三点动画效果
  7. mysql常驻内存_MySQL的内存和相关问题排查
  8. 【毕业设计】jSP在线教学质量评价系统的设计与实现(源代码+论文)
  9. 无所不能java人_无所不能的java
  10. UVa140 - Bandwidth
  11. linux刷windows phone,老机焕新生!Lumia 950XL也能跑Win10
  12. 《软件工程》真题考点
  13. 经纬度坐标转换为大地2000怎么转换_XOMAP-爬虫[4]-零代码实现将quot;地址quot;转换为“经纬度”坐标及“结构化地址”...
  14. 《缠中说禅108课》30:缠中说禅理论的绝对性
  15. H5页面的功能和表现形式有哪些
  16. iphone 自动响应旋转屏幕
  17. 机器学习算法(二):决策树理论与python实现+经典应用(预测隐形眼镜类型)
  18. 计算机毕业论文致谢,精选毕业论文致谢语6篇
  19. PHP+MySQL实现用户登录注册API接口
  20. 俄罗斯黑客挑战美国国家网络安全

热门文章

  1. iOS 之 UICollectionView
  2. App Store 申请审核加速
  3. kickstart中ks.cfg指定目标机ip的小备忘
  4. 数据库like匹配的实现猜测
  5. linux nmon
  6. 自己动手安装ARM交叉编译工具链
  7. 当下常用的webpack版本_细说 webpack系列 1. 为什么要选择 webpack
  8. 语言准备客票问题_菲律宾出国留学需要准备什么?
  9. mysql中begin end中变量定义_DECLARE只能用于BEGIN…END的开头部分定义局部变量,其作用范围只能在该BEGIN…END中。_学小易找答案...
  10. burpsuite 设置https_新手教程:如何使用Burpsuite抓取手机APP的HTTPS数据