B3623枚举排列

题目描述

今有 n 名学生,要从中选出 k 人排成一列拍照。

请按字典序输出所有可能的排列方式。

输入格式

仅一行,两个正整数 n,k。

输出格式

若干行,每行 k 个正整数,表示一种可能的队伍顺序。

输入输出样例

输入 #1复制

复制代码
3 2

输出 #1复制

复制代码
1 2
1 3
2 1
2 3
3 1
3 2
cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int a[10],n,k;
bool b[10]={0},flag=0;
void dfs(int x,int n,int k)
{
    if(x==k)//到边界
    {
        for(int i=0;i<k;i++)//输出
        {
            cout<<a[i]<<" ";
        }
        cout<<endl;
    }
    for(int i=1;i<=n;i++)//从n个数中选
    {
        if(b[i]==1)continue;
            for(int j=0;j<x;j++)//找重复
                if(a[j]==i)flag=1;
            if(flag)continue;
            a[x]=i;
            b[i]=1;//标记
            dfs(x+1,n,k);
            a[x]=0;//回溯
            b[i]=0;//回溯*2
    }
}
int main()
{
    cin>>n>>k;
    dfs(0,n,k);//从0开始搜索
    return 0;
}
相关推荐
WL学习笔记1 小时前
模板初阶(C++)
开发语言·c++·后端·模板初阶
埃伊蟹黄面1 小时前
面试常问题目 —— STL
c++·面试·职场和发展·stl
CHANG_THE_WORLD1 小时前
ida-multi-mcp-跨版本逆向实战博客
c++
青瓦梦滋1 小时前
【在线五子棋对战】游戏匹配模块
网络·c++·网络协议·http·https
David猪大卫2 小时前
【C++修炼】STL容器—模板进阶:非类型模板参数、模板特化、模板分离编译
c语言·开发语言·c++·经验分享·笔记·学习·面试
纪念 2292 小时前
C++ vector(一)
开发语言·c++
垆边人似月.3 小时前
最少的元素个数使和为 target
数据结构·c++·算法
Zip-List3 小时前
工作小记-pytorch的算子优化: 转gpu核函数 python调c
c语言·c++·pytorch·python·cuda
暖焰核心3 小时前
多态全解——虚函数、重写、虚表与多态原理
c++
白杨尚青4 小时前
C++入门篇(十八):模板进阶——非类型参数、特化全家桶与分离编译(收官篇)
开发语言·c++·笔记·模板·偏特化·分离编译