zoukankan      html  css  js  c++  java
  • 洛谷 P1691 有重复元素的排列问题 (stl)next_permutation 全排列函数

    P1691 有重复元素的排列问题

    • 时空限制1s / 128MB

    题目描述

    设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

    说明

    输出按字典顺序排

    -----------------------------------------------------------------------------------------------------------

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 #define maxn 2333
     5 using namespace std;
     6 int read();
     7 int n,an;
     8 char a[maxn];
     9 int main(){
    10     n=read();
    11     memset(a,0,sizeof(a));
    12     scanf(" %s",a+1);
    13     sort(a+1,a+n+1);
    14     printf("%s
    ",a+1);
    15     an=1;
    16     while(next_permutation(a+1,a+n+1)){
    17         printf("%s
    ",a+1);
    18         an++;
    19     }
    20     printf("%d",an);
    21     return 0;
    22 }
    23 int read(){
    24     int ans=0,f=1;char c=getchar();
    25     while('0'>c||c>'9'){if(c=='-')f=-1;c=getchar();}
    26     while('0'<=c&&c<='9')ans=ans*10+c-48,c=getchar();return ans*f;
    27 }
    next_permutation
  • 相关阅读:
    简单说说Restful API
    事务的ACID特性
    WPF DataGrid与ListView性能对比与场景选择
    WPF MVVM实现INotifyPropertyChanged数据监听
    学习Promise异步编程
    CSS单位
    Mac Docker设置国内镜像加速器
    Mac下安装Redis,附可视化工具Medis
    预告 | XPocket开源产品发布会将于1月15日正式线上直播!
    CSDN资源免费下载
  • 原文地址:https://www.cnblogs.com/lpl-bys/p/7689237.html
Copyright © 2011-2022 走看看