从零开始学算法-Day3

//2020.4.22 第三天,学习的动力下降了
这也太难了吧。。。

题目:递归实现指数型枚举

题目描述:从1∼n这 n (n≤16)个整数中随机选取任意多个,输出所有可能的选择方案。

链接:https://ac.nowcoder.com/acm/contest/998/A
来源:牛客网

求解之路:

题目咋一看,不会。。。仔细一看,真的不会啊。。太难了
没办法啊,还是得学。
道理怎么办呢?那就得去看别人的代码了。。。

#include<iostream>
using namespace std;
int n;
void dfs(int u,int state)
{  //u用于记录递归次数 
//state用于记录状态 
    if(u==n)
    {
        for(int i=0;i<n;i++)
        if(state>>i&1)
        cout<<i+1<<" ";
        cout<<endl;
    return;
    }

    dfs(u+1,state);//表示不将第u位置1
    dfs(u+1,state|1<<u);//将第u位置1
    /* 最终将置成
    3->100
    2->010
    2 3->110
    1->001
    1 3->101
    1 2->011
    1 2 3->111
    */

}
int main(){
    cin>>n;
    dfs(0,0);//本题有明显的顺序,可以用dfs搜索
    //应该有两个变量一个用于记录递归的次数,以便
    //在边界的条件时能及时停下来
    //另一个用于记录不同的状态
    return 0; 
}

今天真的不行了,看不明白啊,太晚了,明天再捋捋。。

//2020.4.23 今天继续来搞
图片说明
画了个流程图,一下子就把代码理解了。

<< 的优先级比| 高,运算的时候会先进行<<运算。

这道题用非递归就也能解出来了

#include <iostream>
using namespace std;

int main (){
    int n;
    cin >> n;
    for(int sta = 0; sta < (1 << n);sta++){
        for(int i = 0;i < n; i ++)
            if(sta >> i & 1)
                cout << i+1 << " ";
        cout << endl;
    }
    return  0;
} 

 总结:

真的很难,真的需要慢慢学!!!
递归代码来源:https://blog.csdn.net/qq_42635159/article/details/97116622

全部评论

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
见见123:简历没有啥问题,是这个社会有问题。因为你刚毕业,没有工作经历,现在企业都不要没有工作经历的。社会病了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务