排列型枚举(座次问题)
题目描述
小 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;
}
排列型枚举(座次问题)相关推荐
- 模版 ----- 一维指数型枚举 排列型枚举 组合型枚举
文章目录 一维指数型枚举 一.01型枚举 应用场景 递归树模型 时间复杂度 代码模版 应用 二.滑动型枚举 应用场景 递归树模型 时间复杂度 代码模版 排列型枚举 应用场景 递归树模型 时间复杂度分析 ...
- AcWing 1209. 带分数(排列型枚举)
1209. 带分数 题意: 以n=a+bcn=a+\frac{b}{c}n=a+cb的形式表示一个整数 其中a.b.c的每一位数字包含完1~9且不重复 思路: 暴力枚举出9个数的全排列,然后用一个数 ...
- 《算法竞赛进阶指南》打卡-基本算法-AcWing 94. 递归实现排列型枚举:dfs、二进制状态压缩
文章目录 题目解答 题目来源 题目解答 分析: dfs求全排列,这里是用二进制状态压缩进行优化,二进制状态压缩,顾名思义,每个状态是用二进制的某一位表示.这里的体现是state这个状态,它的每一位代表 ...
- 递归实现排列型枚举(搜索)
题目链接 AcWing 94. 代码: #include <bits/stdc++.h>using namespace std;int a[11];int main() {int n;ci ...
- 递归实现【指数型 / 组合型 / 排列型】枚举
92. 递归实现指数型枚举 #include<bits/stdc++.h> using namespace std; const int N=20; int a[N],n; void df ...
- 递归实现指数型,排列型,组合型枚举
目录 递归实现指数型枚举 递归实现排列型枚举 递归实现组合型枚举 递归实现指数型枚举 题目 从 1∼n1∼n 这 nn 个整数中随机选取任意多个,输出所有可能的选择方案. 输入格式 输入一个整数 n ...
- Typescript - enum 枚举类型(数值型枚举 / 字符串枚举 / 常量枚举 / 异构枚举 / 计算枚举成员 / 联合枚举和枚举成员类型 / 运行时的枚举 / 环境枚举 / 对象与枚举)教程
前言 Enums(枚举)是 TypeScript 的少数功能之一,它不是 JavaScript 的类型级扩展,仅支持数字的和基于字符串的枚举. 使用枚举您可以定义一组带名字的常量,并且清晰地表达意图或 ...
- [蓝桥杯2017决赛]图书排列-next_permutation枚举
题目描述 将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置. 请计算一共有多少种不同的排列方案. 输出 输出一个整数表示答案 代码如下: #include <iostr ...
- 递归法:递归实现排列型
把1-n这n个数排成一行后随机打乱顺序,输出所有可能的次序 输入格式:一个整数n 输出格式:按照从小到大(顺序输出所有方案,每行1个) 同一行相邻两个数用空格隔开 对于两个不同的行,对应下标数一一比较 ...
- LeetCode-1255. 得分最高的单词集合(DFS,组合/子集型枚举)
1255. 得分最高的单词集合 [DFS回溯,二进制枚举] 分析: 这是一个组合/子集枚举问题 设单词表words的大小为n,那么所有可能的组合数为 2 n 2^n 2n 消耗的是字母表letter里 ...
最新文章
- 测试代码发布到博客效果(Windows Live Writer发布)
- Android中的防缓冲区溢出技术
- HashTable, HashMap, LinkedHashMap, ConcurrentHashMap
- Error creating bean with name ‘requestMappingHandlerAdapter‘ OR Failed to load ApplicationContext
- 1026:空格分隔输出
- sys.modules[__name__]的一个实例
- VSFTP配置详解+虚拟用户的支持
- 物联网全称_物联网的魔力世界
- Android开发学习笔记-GridView的动态显示
- 没有规则可制作目标modules_Modules简介
- JDK8新特性(五)之Stream流介绍和获取方式
- Apache Lucene Java 全文检索引擎架构
- 在Linux上配置xampp后远程访问域名报错
- 计算机培训excel的制作,绵阳电脑excel表格制作教程
- 云计算:吹尽狂沙始到金
- Incorrect string value: ‘\xF0\x9F\x91\x82‘ for column ‘address‘ at row 1
- 批处理判断操作系统的文件系统类型
- 1088: 手机短号 (多实例) ZZULIOJ
- 从台下到台上,我成为 GDE(谷歌开发者专家) 的经验分享
- B. Block Adventure(贪心)
热门文章
- ARC093 F Dark Horse——容斥
- 数据治理-数据生命周期管理一
- opencv vector matlab,opencv实现 Matlab 寻找峰值函数 findpeaks
- acc 蓝牙_蓝牙音频传输格式:ACC,SBC,APTX和LDAC
- 手游沙巴克传奇当前服务器维护,《沙巴克传奇》12月18日安卓、IOS维护公告
- 炮兵阵地图文详解NOI2001/POJ1185(状态压缩)
- 软件工程大一学年简单的总结一下
- 人可以N次踏进同一条河流
- 生活不易!一个月薪 12000 的北京程序员的真实生活 !
- 人的一生,到底在追求什么呢?