1 条题解

  • 0
    @ 2025-1-7 11:49:14

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    char str[27];
    int book[27],a[27],pd,step,l,c;
    void dfs(int ans,int ans_yuan,int ans_fu){
        if(step>=25000)return;
        if(ans==l+1){
            if(ans_yuan>=1&&ans_fu>=2){
                ++step;
                if(pd==1)cout<<endl;
                else pd=1;
                for(int j=1;j<=l;j++)cout<<str[a[j]];
            }
            return;
        }
        for(int i=a[ans-1]+1;i<=c;i++)
            if(book[i]==0){
                book[i]=1;
                a[ans]=i;
                if(str[i]=='a'||str[i]=='e'||str[i]=='i'||str[i]=='o'||str[i]=='u')dfs(ans+1,ans_yuan+1,ans_fu);
                else dfs(ans+1,ans_yuan,ans_fu+1);
                book[i]=0;
            }
    }
    int main(){
        cin>>l>>c;
        for(int i=1;i<=c;i++)cin>>str[i];
        sort(str+1,str+c+1);
        dfs(1,0,0);
    }
    

    信息

    ID
    1080
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者