首页 > 编程语言 >搜索与回溯算法

搜索与回溯算法

时间:2024-03-16 13:30:39浏览次数:27  
标签:std 25 int dfs dep 算法 搜索 回溯 include

排列

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<iomanip>
int vis[25],ans[25];
int n;
using namespace std;
void dfs(int dep)
{
    if(dep==n+1)
    {
        for(int i=1;i<=n;i++)
            cout<<setw(5)<<ans[i];
        cout<<endl;
        return;
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[i])
        {
            vis[i]=1;
            ans[dep]=i;
            dfs(dep+1);
            vis[i]=0;
        }
    }
}
int main()
{
    cin>>n;
    dfs(1);
}

组合

#include<cstdio>
#include<iostream>
#include<iomanip>
using namespace std;
int n,r;
int ans[26];
void dfs(int dep)
{
    if(dep==r+1)
    {
        for(int i=1;i<=r;i++)
            cout<<setw(3)<<ans[i];
        cout<<endl;
        return;
    }
    for(int i=ans[dep-1]+1;i<=n;i++)
    {
        ans[dep]=i;
        dfs(dep+1);
    }
}
int main()
{
    cin>>n>>r;
    dfs(1);
}

标签:std,25,int,dfs,dep,算法,搜索,回溯,include
From: https://blog.csdn.net/2302_79599802/article/details/136760892

相关文章

  • 代码随想录算法训练营第十一天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复
    20.有效的括号https://leetcode.cn/problems/valid-parentheses/description/publicbooleanisValid(Strings){if(s==null)returntrue;Stack<Character>stack=newStack<>();for(inti=0;i<s.length();i++){......
  • 【C++算法模板】图论-拓扑排序,超详细注释带例题
    文章目录0)概述1)Kahn算法1:数据结构2:建图3:Kanh算法2)DFS染色1:数据结构2:建图3:DFS3)算法对比【例题】洛谷B3644推荐视频链接:D01拓扑排序0)概述给定一张有向无环图,排出所有顶点的一个序列A......
  • 分布式搜索elasticsearch(1)
    1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:在GitHub搜索代码在电商网站搜索商品 在百度搜索答案在打车软件搜索附近的车1.1.2.ELK技......
  • 梯度下降算法原理 用python实现
    1.介绍我们常常说阶梯要慢慢下,但是我们的计算机不这样认为,因为他们是人类智慧的结晶,我们已经知道了最优解,在某些方面,所以我们要找到最速梯度,这样梯度下降就被广泛运用。梯度下降(gradientdescent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目......
  • 【计算机网络】网络层——基本概述、路由选择算法
    网络层大纲网络层的功能主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。分组是由数据报切割来功能:路由选择与分组转发异构网络互联(路由器)拥塞控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状......
  • 代码随想录 第21天 | ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ●
    leetcode:530.二叉搜索树的最小绝对差-力扣(LeetCode)思路:判断最小绝对差,肯定用中序遍历,双指针一前一后依次判断。classSolution{intresult=Integer.MAX_VALUE;TreeNodepre=null;publicintgetMinimumDifference(TreeNoderoot){if(root==......
  • 【机器学习】机器学习创建算法第2篇:K-近邻算法【附代码文档】
    机器学习(算法篇)完整教程(附代码资料)主要内容讲述:机器学习算法课程定位、目标,K-近邻算法,1.1K-近邻算法简介,1.2k近邻算法api初步使用定位,目标,学习目标,1什么是K-近邻算法,1Scikit-learn工具介绍,2K-近邻算法API,3案例,4小结。K-近邻算法,1.3距离度量学习目标,1欧式距离,2......
  • 算法进阶之路:十大经典排序算法详解与实践
    算法进阶之路:十大经典排序算法详解与实践在计算机科学的世界里,排序算法是基础且至关重要的一环。无论是数据库查询、数据分析还是日常的编程任务,高效的排序算法都能显著提升程序的性能。本文将带你深入了解十大经典排序算法,包括它们的原理、优缺点以及代码实现,帮助你在算法......
  • 回溯:排列回溯和组合回溯的区别
    在形式上,最明显的问题就是[1,2]和[2,1]这两个list在排列中是正确的,而在组合中一般只有前者排列回溯注重元素的顺序,并且允许重复元素的出现,而组合回溯则不考虑元素的顺序。排列回溯:通常使用一个boolean数组来标记哪些元素已经被选择,哪些尚未被选择在递归的每一层,我们......
  • 排序算法以及TOP 10(算法实验一)
    实验目的:掌握选择排序、冒泡排序、合并排序、快速排序、插入排序算法原理掌握不同排序算法时间效率的经验分析方法,验证理论分析与经验分析的一致性。问题重述(问题描述):问题一:实现选择排序、冒泡排序、合并排序、快速排序、插入排序算法问题二:生成20组数量规模为n(10万,20万......