【递归与递推 1】AcWing94.递归实现排列型枚举

简介: 【递归与递推 1】AcWing94.递归实现排列型枚举

把 1∼ n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。

输入格式

一个整数 n 。

输出格式

按照从小到大的顺序输出所有方案,每行 11 个。

首先,同一行相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

数据范围

1 ≤ n ≤ 9

输入样例:

3

输出样例:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

思路

用dfs深度优先搜索来做,以给的例子为例,先划出三个位置,然后对于第一个位置,可填的数有1、2、3,也就有三个分支,然后再去每个分支进行第二个位置的填数,然后是第三个。


这里注意:数只能用一次,所以就需要对于数字进行标记是否用过。


对于字典序最小,实际上只要按照顺序来做就行了

#include<iostream>
#include<cstdio>
using namespace std;
const int N = 10;
//这里注意全局数组会自动赋值为0、false
int n;
bool used[N];   //用没用过
int state[N];   //表示放的是哪个数,0:还没放
void dfs(int u)
{
    //先判断边界
    if(u > n) 
    {   //直接打印方案
        for(int i = 1 ; i <= n ; i ++) printf("%d ", state[i]);
        puts("");   //puts表示输出“字符串+换行”
    }
    for(int i = 1; i <= n; i ++)
        if(!used[i]) // 如果i没有用过
        {
            state[u] = i;
            used[i] = true;
            dfs(u + 1);
            //恢复现场
            state[u] = 0;
            used[i] = false;
        }
}
int main()
{
    cin >> n;
    dfs(1); //从哪个数字开始搜索
    return 0;
}
相关文章
|
安全
选择最佳供应商:ERP系统的供应商选择与评估方法论
选择最佳供应商:ERP系统的供应商选择与评估方法论
1861 0
|
11月前
|
数据挖掘 测试技术 图形学
《3D动作游戏受击反馈:从模板化硬直到沉浸式打击感的开发拆解》
本文记录3D动作游戏角色受击反馈系统的开发实践,针对早期依赖引擎模板导致的反馈雷同、硬直僵化等问题展开优化。通过联合多岗位梳理“视觉差异化、物理动态化、音效分层”需求,放弃传统组件,自研受击反馈状态机,实现状态独立配置与优先级切换;构建伤害类型-反馈参数映射表适配不同场景,开发动态硬直判定器平衡攻防体验。经性能优化(特效实例化、粒子分级)与细节打磨(弱点反馈强化、残血感知优化),解决卡顿、反馈不清晰等痛点,最终实现“每一击有重量”的沉浸打击感,为动作游戏受击系统开发提供实用参考。
1082 11
|
6月前
|
人工智能 数据库 开发者
OpenClaw「虾搞」数据库首场活动明日杭州开搞!
3月14日,OpenClaw“虾搞”数据库首场线下活动将在杭州阿里西溪园区举行。原定70人的技术沙龙,4天报名超600人,场地紧急扩容3倍!聚焦AI Agent与数据库融合,致敬开发者敢试错、勇探索的“虾搞”精神。全程直播,多地巡演即将启动。
733 3
|
8月前
|
人工智能 自然语言处理 运维
企业数据分析系统建设费用,2026年降本增效的三大趋势
2026年,数据分析系统成企业降本增效战略刚需。全球投资达3850亿美元,中国占比超620亿美元(+18.7%)。瓴羊Quick BI以AI原生架构、“智能小Q”自然语言分析、多源实时接入及SaaS/私有化/混合云灵活部署,助力企业实现低门槛、高ROI的数据智能转型。(239字)
企业数据分析系统建设费用,2026年降本增效的三大趋势
|
12月前
|
人工智能 边缘计算 运维
AI守护隐私?边缘计算设备的“护城河”原来可以这么建
AI守护隐私?边缘计算设备的“护城河”原来可以这么建
518 0
|
8月前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c9i实例测评:实例性能、适用场景与最新收费标准和活动价格参考
阿里云计算型c9i实例作为第九代云服务器代表,采用CIPU架构与英特尔至强6代处理器,计算性能提升20%,存储I/O及网络能力显著增强。适配机器学习推理、数据分析、视频编码等计算密集型场景,提供2核4G至192核384G的丰富规格,支持按量付费与包年包月模式。2026年新用户可享年付6.4折优惠,叠加优惠券后成本进一步降低。本文详述其技术架构、适用场景、规格参数、收费标准及选购策略,以供参考。
1707 0
|
敏捷开发 存储 安全
潜力与限制:低代码开发平台优缺点全面分析
低代码开发平台加速企业数字化转型,优点包括快速开发、降低技术门槛、灵活定制和方便维护。然而,也存在复杂功能限制、数据孤岛、供应商依赖和安全合规问题。推荐的低代码平台有Zoho Creator(适合中小企业)、Mendix(创新型企业)、Microsoft Power Apps(大型企业)、OutSystems(高安全合规要求)以及AppSheet和Appian(入门级用户)。在选择时,需综合考虑业务需求、技术因素和风险。
1838 0
|
存储 编译器 C语言
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
768 2
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
|
存储 人工智能 小程序
比赛须知【2024 年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)】
该文章是关于2024年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)的参赛通知,强调了比赛时间、阅读比赛须知的重要性,并列举了多项比赛期间禁止的行为以确保比赛的公平性。
 比赛须知【2024 年睿抗机器人开发者大赛CAIP-编程技能赛(国赛)】
|
机器学习/深度学习 算法
程序与技术分享:CDH、HDH、IDH、DDH、BDH、DBDH假设
程序与技术分享:CDH、HDH、IDH、DDH、BDH、DBDH假设