1 条题解

  • 0
    @ 2025-10-10 19:27:26

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int n,m,x;
    char a[30];
    int b[30]={0};
    bool check(){
        int aa=0,bb=0;
        for(int i=1;i<=n;i++){
            if(a[b[i]]=='a'||a[b[i]]=='o'||a[b[i]]=='e'||a[b[i]]=='i'||a[b[i]]=='u')aa++;
            else bb++;
        }
        return aa>=1&&bb>=2;
    }
    void dfs(int dep,int l){
        if(dep>n){
            if(check())
            {
            	x++;
                for(int i=1;i<=n;i++){
                cout<<a[b[i]];
                if(x==25000) exit(0);
            }
            cout<<endl;
            }
            return;
        }
        for(int i=l+1;i<=m;i++){
            b[dep]=i;
            dfs(dep+1,i);
        }
    }
    int main()
    {
    
        scanf("%d%d",&n,&m);
        for(int i=1;i<=m;i++){
            cin>>a[i];
        }
        sort(a+1,a+m+1);
        dfs(1,0);
        return 0;
    }
    
    
    • 1

    信息

    ID
    742
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者