回溯2--部分全排列

一、心得

二、题目及分析

设有n个整数的集合{1,2,...,n},从中任意取出r个数进行排列(r<n),试着列出所有排列

全排列的阉割版,修改输出限制条件即可

三、代码及结果

 1 /*
 2 设有n个整数的集合{1,2,...,n},从中任意取出r个数进行排列(r<n),试着列出所有排列
 3
 4 全排列的阉割版,修改输出限制条件即可
 5
 6 */
 7 #include <iostream>
 8 using namespace std;
 9 //三个数组
10 bool vis[100];
11 int total=0;
12 int ans[100];
13
14 //输出结果
15 void print(int r){
16     if(total==5) return ;
17     total++;
18     cout<<"<"<<total<<">"<<endl;
19     for(int i=1;i<=r;i++){
20         cout<<ans[i]<<" ";
21     }
22     cout<<endl;
23 }
24
25 void search(int t,int n,int r){
26     if(t==r+1) print(r);
27     for(int i=1;i<=n;i++){
28         if(!vis[i]){
29             ans[t]=i,vis[i]=1;
30             search(t+1,n,r);
31             vis[i]=0;
32         }
33     }
34 }
35
36 int main(){
37     int n,r;
38     cin>>n>>r;
39     search(1,n,r);
40     cout<<total<<endl;
41     return 0;
42 }

回溯2--部分全排列相关推荐

  1. 动态规划,分治,回溯法,全排列,切片

    全排列问题,可以从动态规划状态方程考虑,也可以从回溯法考虑,二者代码递归形式的代码是一致的,但是理解的角度不同 动态规划: # 基于动态规划,状态方程考虑,f[n] = 首位为所有元素 + f[n-1 ...

  2. 回溯算法(全排列、组合、N皇后问题)

    回溯算法(全排列.N皇后问题) 暴力穷举,这是不可避免,因为回溯法没有重复子结构,所以其时间复杂度大于等于O(N!): 前言 本文章内容部分参考公众号labuladong关于回溯算法的讲解,仅为笔者日 ...

  3. 回溯法解决全排列问题总结

    1.了解全排列和回溯 所谓全排列就是从n个元素中取出n个元素按照一定的顺序进行排列,所有的排列情况叫做全排列. 这n个元素又分为两种情况,一种是n个元素存在重复元素,一种是n个元素不存在重复元素.不存 ...

  4. 回溯法-框架+全排列+N皇后

    回溯算法解题套路框架https://labuladong.gitbook.io/algo/suan-fa-si-wei-xi-lie/3.1-hui-su-suan-fa-dfs-suan-fa-xi ...

  5. 回溯算法之全排列问题

    解法框架 [README]回溯算法基本框架 全排列问题(点击跳转) 首先我们需要仔细观察函数的返回值和形参等(这里我使用的C++,因为它处理数组,字符串特别方便),这里形参是一个vector的引用,也 ...

  6. 全排列及相关扩展算法(一)——基础的回溯递归实现全排列算法

    1.全排列的定义和公式: 从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列.由排列的定义,显然不同的顺序是一个不同的排列.从n个元素中取m个元素 ...

  7. 回溯算法--LeetCode-46 全排列、LeetCode-47 全排列Ⅱ

    LeetCode-46 全排列 题目链接:https://leetcode-cn.com/problems/permutations/ 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输 ...

  8. 【算法进阶】回溯(backtracking)基本逻辑,以及常见回溯问题(全排列、解数独、八皇后)

    文章目录 一.引言 二.回溯法基本逻辑 三.回溯法代码模板 三.回溯法常见问题 3.1 组合 逻辑 代码 3.2 子集 逻辑 代码 3.3 子集Ⅱ 逻辑 代码 3.4 分割回文串 逻辑 代码 3.5 ...

  9. java蓝桥杯dfs_第七届 蓝桥杯决赛 Java B组 打靶 解题报告(DFS,回溯,全排列)-Go语言中文社区...

    题目: 打靶 小明参加X星球的打靶比赛. 比赛使用电子感应计分系统.其中有一局,小明得了96分. 这局小明共打了6发子弹,没有脱靶. 但望远镜看过去,只有3个弹孔. 显然,有些子弹准确地穿过了前边的弹 ...

  10. LeetCode 47 全排列 II -- 回溯法

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations-ii 题意: 给定一个可包含重复数字的序列 nums ,按任意顺序 返 ...

最新文章

  1. python模块之imghdr检测图片类型
  2. 解决Android 编译出错 找不到android.databinding.ViewDataBinding的类文件
  3. 理解和使用systrace
  4. windchill开发之创建对象
  5. Activity管理
  6. uniapp 获取图片的高度_uni-app获取元素高度等信息,并设置元素top信息
  7. POJ 1330 Nearest Common Ancestors / UVALive 2525 Nearest Common Ancestors (最近公共祖先LCA)...
  8. JAVA编写飞机大战---分析过程及源代码(超详细超完整)
  9. 自媒体剪辑中常用的premere快捷键
  10. java不小于等于符号怎么打_小于号,小于等于号怎么用键盘打出来?-大于等于号怎么打-数学-毕睬诵同学...
  11. python练习题(一):输入某年某月某日,判断这一天是这一年的第几天
  12. radio默认选中并显示相应信息 php,php selectradio和checkbox默认选择的实现方法详解...
  13. python plc fx5u_三菱PLC FX5U系列模块型号对照一览表
  14. python时间序列分析包_python关于时间序列的分析
  15. Java实现电脑屏幕的截取并保存成图片
  16. Nginx基于IP的访问控制
  17. 数据迁移的高招!两台笔记本电脑怎么互传文件
  18. Netty(一)基础socketchannel,Buffer,selector黏包 半包解决 实战
  19. 工程伦理--15.6 克隆技术和干细胞研究的伦理问题(下)
  20. C++实现解zip解压缩功能:将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(windows平台)

热门文章

  1. 随机梯度下降(SGD)和批量梯度下降(BGD)的区别
  2. MYSQL的Commit与程序的原子性
  3. 解决DEFINE_string(result_path, result, Path for results) NameError:name 'os' is not defined
  4. JSP中request内置对象
  5. 千锋培训php怎么样,零基础学员真实感受 选择千锋PHP培训完成人生蜕变
  6. linux主备dns切换时间,linux下主从DNS配置相关知识(二)
  7. Android Fragment + ViewPater + Fragment嵌套Fragment实战
  8. microsoft azure
  9. Dtree 添加 checkbox 复选框 可以默认选中
  10. textarea标签的文字居中解决方法