题目链接:https://www.acwing.com/problem/content/description/94/


题意:从 n 个数中选取数字,输出所有的选取可能

idea:枚举所有取数可能,就一简单的DFS,不过题解用二进制表示状态,着实巧妙

我的DFS:

 #include <iostream>
#include <cstdio> using namespace std;
const int N = ;
int n, a[];
bool st[]; void dfs(int num)
{
if (num > n)
{
for (int i = ; i <= n; i ++ )
if (st[i]) cout << i << " ";
cout << endl;
return;
}
st[num] = true;
dfs(num + );
st[num] = false;
dfs(num + );
} int main()
{
cin >> n;
dfs();
return ;
}

大佬(秦淮岸)的位运算+递归深度优先搜索

用一个数的二进制的每一位表示选取状态

 #include <bits/stdc++.h>
using namespace std;
int n;
void dfs(int x,int now)
{
if (x>n)
return ;
if (x==n)
{
for (int i=;i<=n;i++)
if (now>>(i-) & )
cout<<i<<" ";
puts("");
}
dfs(x+,now<< | );
dfs(x+,now<<);
}
int main()
{
cin>>n;
dfs(,);
}

AcWing 92. 递归实现指数型枚举的更多相关文章

  1. ACWing94.递归实现指数型枚举

    https://www.acwing.com/problem/content/description/94/ 题面 \92. 递归实现指数型枚举 从 1∼n 这 n 个整数中随机选取任意多个,输出所有 ...

  2. AcWing 93. 递归实现组合型枚举

    AcWing 93. 递归实现组合型枚举 原题链接 从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案. 输入格式 两个整数 n,m ,在同一行用空格隔开. 输出格式 按照从小到大的 ...

  3. AcWing 94. 递归实现排列型枚举

    AcWing 94. 递归实现排列型枚举 题目链接 把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序. 输入格式 一个整数n. 输出格式 按照从小到大的顺序输出所有方案,每行1个. ...

  4. 洛谷 P2089 烤鸡【DFS递归/10重枚举】

    [链接]:https://www.luogu.org/problemnew/show/P2089 题目描述 猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢? ...

  5. (acwing蓝桥杯c++AB组)1.1 递归

    (acwing蓝桥杯c++AB组)1.课程介绍+递归 文章目录 (acwing蓝桥杯c++AB组)1.课程介绍+递归 课程介绍 第一讲 递归与递推 递归 引入 递归的底层调用顺序 例题与练习 课程介绍 ...

  6. Chapter1 递归与递推

    Chapter 1 递归与递推 时间复杂度(转载自yxc大佬) 一般ACM或者笔试题的时间限制是1秒或2秒. 在这种情况下,C++代码中的操作次数控制在 107107 为最佳. 下面给出在不同数据范围 ...

  7. Acwing_蓝桥_递归

    一.关于由数据范围反推算法复杂度及其算法 关于输入输出:问题规模小于105:cin,scanf都差不多,但是要是大于105推荐使用scanf和printf. 二.关于递归 1.定义 自己调用自己 2. ...

  8. 0x02 递推与递归

    [例题]CH0301 递归实现指数型枚举 #include <iostream> #include <cstdio> #include <algorithm> #i ...

  9. ACM算法--枚举方法(指数枚举,组合枚举)模板

    // 递归实现指数型枚举 vector<int> chosen; void calc(int x) { if (x == n + 1) { for (int i = 0; i < c ...

随机推荐

  1. 便捷删除QQ空间说说

    用Chrome打开QQ空间说说(心情),按F12,在Console里面粘贴以下代码,按回车 var delay = 1000; function del() { document.querySelec ...

  2. linux下yum安装python3

    linux下yum安装python3 linux下yum安装python3yum install python34 -ypython3 --version wget --no-check-certif ...

  3. 通过源码安装PostgresSQL

    通过源码安装PostgresSQL 1.1 下载源码包环境: Centos6.8 64位 yum -y install bison flex readline-devel zlib-devel yum ...

  4. MySQL——复制(Replication)

    1.复制概述 1.1.复制解决的问题数据复制技术有以下一些特点:(1)    数据分布(2)    负载平衡(load balancing)(3)    备份(4)    高可用性(high avai ...

  5. Jenkins自动打包并部署(以java -jar形势运行)

    1.打包 与平常maven项目打包一致,不再赘述 2.杀死原有进程 通过 pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 获取当前 ...

  6. 【NOIP2016提高A组五校联考4】label

    题目 题目 20%算法 设\(f_{i,j}\)表示第i个节点选了j这个权值的方案数. 显然转移方程为,\[f_{i,j}=\Pi_{v=son(i)}(\sum_{k=1}^{j-k}f_{v,k} ...

  7. Python 日期和时间Ⅱ

    获取某月日历 Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历: 以上实例输出结果: Time 模块 Time 模块包含了以下内置函数,既有https://www.xuanhe ...

  8. tomcat7 与tomcat8 使用tomcat dbcp pool注意对应类变化

    tomcat dbcp pool在tomcat 7 和tomcat8下的jar包有变化,相应包名也发生变化,对应类名有相应变化! tomcat的lib文件夹下会有jar包tomcat-dbcp.jar ...

  9. 使用vscode打断点

    1.vscode打开的文件必须只包含你要调适的项目,不能同时在一个vscode打开多个项目窗口 2.点击vscode的这个小蜘蛛 3.选择添加配置 4.此时自动生成了一个文件,launch.json: ...

  10. 能给个安全点的fifo吗

      调试一个基于altera  FPGA的项目,发现开机200次,就会有1到2次的开机不正常现象,但只要是成功开机了,无论运行多久都是正常的.   遇到这类问题,按照经验来说 一般首先想到的可能是电源 ...