zoukankan      html  css  js  c++  java
  • 重复元素排列问题

    【问题描述】

           设R={ r1, r2 , …, rn}是要进行排列的n个元素。其中元素r1, r2 , …, rn可能相同。试设计一个算法,列出R的所有不同排列。

    【编程任务】

           给定n 以及待排列的n 个元素。计算出这n 个元素的所有不同排列。

    【输入格式】

           由perm.in输入数据。文件的第1 行是元素个数n,1≤n≤500。接下来的1 行是待排列的n个元素。

    【输出格式】

           计算出的n个元素的所有不同排列输出到文件perm.out中。文件最后1行中的数是排列总数。

    【输入样例】

    4
    aacc

    【输出样例】多解

    aacc
    acac
    acca
    caac
    caca
    ccaa
    6

    【代码】

    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    int n,g=0,q[811];
    char p[811];
    string s;
    int search(int);
    int print();
    
    int main() {
        cin>>n>>s;
        for(int i=0; i<n; i++) q[s[i]-96]++;
        search(0);
        cout<<g<<endl;
        return 0;
    }
    
    int search(int x) {
        for(int i=1; i<=26; i++)
            if(q[i]) {
                p[x]=s[i-1];
                q[i]--;
                if(x==n-1) print();
                else search(x+1);
                q[i]++;
            }
    }
    
    int print() {
        g++;
        for(int i=0; i<n; i++) cout<<p[i];
        cout<<endl;
    }
    View Code

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    安装Visual Studio的插件AnkhSvn
    从零开始安装 Ambari (1) -- 安装前的准备工作
    centos7 安装 mysql
    hortonworks docker 安装
    Kafka connect
    KONG -- 图形化管理(Kong Dashboard)
    KONG -- 配置 service 并添加 key-auth
    KONG 安装 (在 CentOS 7 中)
    kylin cube 构建过程
    sqoop 安装与命令
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6613085.html
Copyright © 2011-2022 走看看