• 洛谷 P1691 有重复元素的排列问题


    题目描述

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

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

    输入输出格式

    输入格式:

     

    第1行:元素个数n(1<=n<500)

    第2行:一行字符串,待排列的n个元素

     

    输出格式:

     

    计算出的n个元素的所有不同排列,最后一行是排列总数。

     

    输入输出样例

    输入样例#1: 复制
    4
    aacc
    输出样例#1: 复制
    aacc
    acac
    acca
    caac
    caca
    ccaa
    6

    说明

    输出按字典顺序排

    思路:STL

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char a[502],b[502];
    int n,s=1;
    int main(){
        scanf("%d",&n);
        scanf("%s",a);
        sort(a,a+n);
        strcpy(b,a);
        printf("%s
    ",a);
        while(next_permutation(a,a+n)){
            if(!strcmp(b,a))    continue;
            printf("%s
    ",a);
            ++s;
        }
        printf("%d",s);
        return 0;
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    C++程序代写实现HashSet class
    EL表达式
    Hibernate的事务管理
    ThreadLocal理解
    SOA框架
    JVM垃圾回收机制
    Htpp通讯协议详解
    Android模拟器使用SD卡
    android 开发-HttpClient状态码定义
    android 开发-文件存储之读写sdcard
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7861718.html
Copyright © 2020-2023  润新知