zoukankan      html  css  js  c++  java
  • luogu P1706全排列问题

    题目描述

    输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

    输入输出格式

    输入格式:

    n(1≤n≤9)

    输出格式:

    由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。

    题解

    这题真是道好题,用STL的好题

    正常的题解是这样的(我同学的qwq)

    #include<iostream>
    #include<iomanip>
    using namespace std;
    int n;
    int a[10001];
    bool b[10001]={0};
    void print()
    {
        int i;
        for(i=1;i<=n;i++)
        cout<<setw(5)<<a[i];
        cout<<endl;
        return ;
    }
    void dfs(int k)
    {
        int i;
        for(i=1;i<=n;i++)
        {
            if(!b[i])
            {
                a[k]=i;
                b[i]=1;
                dfs(k+1);
                b[i]=0;
            }
            
        }
        if(k==n+1)
        print();
        
        return ;
    }
    int main()
    {
        cin>>n;
        dfs(1);
        
    }

    然而你们以为我会手打向上边那样的代码吗(偷笑)

    下边是我写的代码

    #include<bits/stdc++.h>
    using namespace std;
    int a[11];
    int main()
    {
        int n;
        cin>>n;
        for(int i=1;i<=n;i++)
            a[i]=i,printf("    %d",a[i]);
        while(next_permutation(a+1,a+1+n))
        {
            printf("
    ");
            for(int i=1;i<=n;i++)
            printf("    %d",a[i]);
        }
        return 0;
    }
    next_permutation()STL中求下一个排列
    友链:http://www.slyar.com/blog/stl_next_permutation.html
  • 相关阅读:
    正则匹配 sql语句参数
    正则判断是不是移动端浏览
    .net 2.0 后台多线程
    Oracle 获取当天数据
    C# 图片转Base64
    Js FileReader图片加载
    KendoUI操作笔记
    Android Studio解析Json文件内容
    LitePal
    C#最基本的小说爬虫
  • 原文地址:https://www.cnblogs.com/Alarak26/p/8525225.html
Copyright © 2011-2022 走看看