题目描述

小 A 的学校,老师好不容易解决了蓝桥杯的报名问题,现在老师又犯愁了。

现在有 N 位同学参加比赛,但是老师想给他们排座位,但是排列方式太多了。

老师非常想弄明白最后的排座次的结果是什么样子的,到底有多少种结果。

请设计一个程序帮助老师。

最后输出各种情况的人名即可,一行一种情况,每种情况的名字按照报名即输入顺序排序。

输入描述

输入第一行包含一个整数 NN。

接下来 N 行每行包含一个字符串 Si​,表示人名。

输出描述

输出共若干行,每行输出各种情况的人名。一行一种情况,每种情况的名字按照报名即输入顺序排序

解题思路:

这其实就是一个全排列问题,那么最常用的方法自然就是搜索去做。

代码:

#include<bits/stdc++.h>
using namespace std;
vector<string> s;
int n;
bool visit[20];
int choose[20];
void solve(int x)
{if(x==n+1){for(int i=1;i<=n;i++){cout<<s[choose[i]-1]<<" ";}cout<<endl;return ;}for(int i=1;i<=n;i++){if(visit[i]){continue;}choose[x]=i;visit[i]=1;solve(x+1);choose[x]=0;visit[i]=0;}
}
int main()
{cin>>n;for(int i=0;i<n;i++){string c;cin>>c;s.push_back(c);}solve(1);return 0;
}

排列型枚举(座次问题)相关推荐

  1. 模版 ----- 一维指数型枚举 排列型枚举 组合型枚举

    文章目录 一维指数型枚举 一.01型枚举 应用场景 递归树模型 时间复杂度 代码模版 应用 二.滑动型枚举 应用场景 递归树模型 时间复杂度 代码模版 排列型枚举 应用场景 递归树模型 时间复杂度分析 ...

  2. AcWing 1209. 带分数(排列型枚举)

    1209. 带分数 题意: 以n=a+bcn=a+\frac{b}{c}n=a+cb​的形式表示一个整数 其中a.b.c的每一位数字包含完1~9且不重复 思路: 暴力枚举出9个数的全排列,然后用一个数 ...

  3. 《算法竞赛进阶指南》打卡-基本算法-AcWing 94. 递归实现排列型枚举:dfs、二进制状态压缩

    文章目录 题目解答 题目来源 题目解答 分析: dfs求全排列,这里是用二进制状态压缩进行优化,二进制状态压缩,顾名思义,每个状态是用二进制的某一位表示.这里的体现是state这个状态,它的每一位代表 ...

  4. 递归实现排列型枚举(搜索)

    题目链接 AcWing 94. 代码: #include <bits/stdc++.h>using namespace std;int a[11];int main() {int n;ci ...

  5. 递归实现【指数型 / 组合型 / 排列型】枚举

    92. 递归实现指数型枚举 #include<bits/stdc++.h> using namespace std; const int N=20; int a[N],n; void df ...

  6. 递归实现指数型,排列型,组合型枚举

    目录 递归实现指数型枚举 递归实现排列型枚举 递归实现组合型枚举 递归实现指数型枚举  题目 从 1∼n1∼n 这 nn 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数 n ...

  7. Typescript - enum 枚举类型(数值型枚举 / 字符串枚举 / 常量枚举 / 异构枚举 / 计算枚举成员 / 联合枚举和枚举成员类型 / 运行时的枚举 / 环境枚举 / 对象与枚举)教程

    前言 Enums(枚举)是 TypeScript 的少数功能之一,它不是 JavaScript 的类型级扩展,仅支持数字的和基于字符串的枚举. 使用枚举您可以定义一组带名字的常量,并且清晰地表达意图或 ...

  8. [蓝桥杯2017决赛]图书排列-next_permutation枚举

    题目描述 将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置. 请计算一共有多少种不同的排列方案. 输出 输出一个整数表示答案 代码如下: #include <iostr ...

  9. 递归法:递归实现排列型

    把1-n这n个数排成一行后随机打乱顺序,输出所有可能的次序 输入格式:一个整数n 输出格式:按照从小到大(顺序输出所有方案,每行1个) 同一行相邻两个数用空格隔开 对于两个不同的行,对应下标数一一比较 ...

  10. LeetCode-1255. 得分最高的单词集合(DFS,组合/子集型枚举)

    1255. 得分最高的单词集合 [DFS回溯,二进制枚举] 分析: 这是一个组合/子集枚举问题 设单词表words的大小为n,那么所有可能的组合数为 2 n 2^n 2n 消耗的是字母表letter里 ...

最新文章

  1. 测试代码发布到博客效果(Windows Live Writer发布)
  2. Android中的防缓冲区溢出技术
  3. HashTable, HashMap, LinkedHashMap, ConcurrentHashMap
  4. Error creating bean with name ‘requestMappingHandlerAdapter‘ OR Failed to load ApplicationContext
  5. 1026:空格分隔输出
  6. sys.modules[__name__]的一个实例
  7. VSFTP配置详解+虚拟用户的支持
  8. 物联网全称_物联网的魔力世界
  9. Android开发学习笔记-GridView的动态显示
  10. 没有规则可制作目标modules_Modules简介
  11. JDK8新特性(五)之Stream流介绍和获取方式
  12. Apache Lucene Java 全文检索引擎架构
  13. 在Linux上配置xampp后远程访问域名报错
  14. 计算机培训excel的制作,绵阳电脑excel表格制作教程
  15. 云计算:吹尽狂沙始到金
  16. Incorrect string value: ‘\xF0\x9F\x91\x82‘ for column ‘address‘ at row 1
  17. 批处理判断操作系统的文件系统类型
  18. 1088: 手机短号 (多实例) ZZULIOJ
  19. 从台下到台上,我成为 GDE(谷歌开发者专家) 的经验分享
  20. B. Block Adventure(贪心)

热门文章

  1. ARC093 F Dark Horse——容斥
  2. 数据治理-数据生命周期管理一
  3. opencv vector matlab,opencv实现 Matlab 寻找峰值函数 findpeaks
  4. acc 蓝牙_蓝牙音频传输格式:ACC,SBC,APTX和LDAC
  5. 手游沙巴克传奇当前服务器维护,《沙巴克传奇》12月18日安卓、IOS维护公告
  6. 炮兵阵地图文详解NOI2001/POJ1185(状态压缩)
  7. 软件工程大一学年简单的总结一下
  8. 人可以N次踏进同一条河流
  9. 生活不易!一个月薪 12000 的北京程序员的真实生活 !
  10. 人的一生,到底在追求什么呢?