zoukankan      html  css  js  c++  java
  • 51NOD 1384 全排列

    dfs 就可以。要求字典序并且不反复。

    開始的时候用map判重。结果有几个例子TLE了。

    然后我就直接所有搜出来。然后排序去重。过了。


    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<queue>
    #include<algorithm>
    #include<map>
    #include<stack>
    #include<iostream>
    //#include<list>
    //#include<set>
    //#include<bitset>
    #include<vector>
    //#include<valarray>
    #include<cmath>
    
    #define INF 0x7fffffff
    #define eps 1e-8
    #define LL long long
    #define PI 3.141592654
    #define CLR(a,b) memset(a,b,sizeof(a))
    #define FOR(i,a,b) for(int i=a;i<b;i++)
    #define REP(i,a,b) for(int i=a;i>=b;i--)
    #define sf scanf
    #define pf printf
    #define all(v) (v).begin(),(v).end()
    #define acfun std::ios::sync_with_stdio(false)
    
    #define SIZE (1000 +2)
    #define MOD 1000000007
    using namespace std;
    
    int n;
    char a[11];
    bool vis[11];
    char str[11];
    int cnt;
    string num[1000000];
    
    void dfs(int i)
    {
        if(i>=n)
        {
            a[i]='';
            num[cnt++]=a;
        }
        else
        {
            FOR(j,0,n)
            {
                if(!vis[j])
                {
                    vis[j]=1;
                    a[i]=str[j];
                    dfs(i+1);
                    vis[j]=0;
                }
            }
        }
    }
    
    int main()
    {
    
        while(~sf("%s",str))
        {
            n=strlen(str);
            CLR(vis,0);
            cnt=0;
            dfs(0);
            sort(num,num+cnt);
            int m=unique(num,num+cnt)-num;
            FOR(i,0,m)
            cout<<num[i]<<endl;
        }
    }
    


  • 相关阅读:
    RedisDump安装报错
    安装mysql解压版时遇到的错误
    Docker 私有仓库 Harbor搭建与使用
    最好的6个Go语言Web框架
    安裝 drone CLI和使用drone
    使用 Kubernetes Helm 安装 Drone
    从ELK到EFK演进
    搭建helm私服ChartMuseum
    Helm3的使用
    Helm3部署安装
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6978604.html
Copyright © 2011-2022 走看看