7.15每日心得

文章讲述了如何使用深度优先搜索(DFS)模板解决一个涉及数学规律的问题。题目要求从一个1开始,通过复制粘贴前面的数字达到有n个1,操作次数与log2(n-1)+1相关。在DFS过程中,关键点包括出局判断、回溯以及答案的存储和输出。
摘要由CSDN通过智能技术生成

复习了DFS模板和一些列题

#include<bits/stdc++.h>
using namespace std;
int n, m;//n:有几个数  m:要几个 
bool used[ ];//是否用过 
int ans[ ];//答案 
void dfs(int u){
    if (出局判断){//到头就走 u==n时
        输出答案for循环,逐个输出ans[i]
        return ;//退出 
    }
    for (int i = 开始的地方; i <= n; i++)//从上一个数开始依次增加,枚举每一种情况 
        if (used[i] == 0) {//判断是否用过
            ans[u]=i;
            used[]=1加入结果 设为用过
            dfs(u + 1);//下一个数字 
            used[]=0回溯:回到没用过
            }
    return ;//退出 
}
int main(){

    输入 初始化
    dfs(1);//开始搜索,从0或1开始
    return 0;
}

一定要回溯!!!

有个数学规律题,刚开始只有一个1,要结果为n个1,每次操作可以复制粘贴前面有的,规律为log2(n-1)+1次操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值