竞赛讨论区 > 和我一起加入圣教吧
头像
清木mick1212
发布于 09-22 20:32 湖南
+ 关注

和我一起加入圣教吧

看到数据范围我就想到了一种有一种暴力的美的做法

k既然<=4那么直接分类讨论

#include
using namespace std;
int n,k,ans;
mapm;
string str[15]; 
int main(){
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>str[i];    
    }
    if(k==1){
        for(int i=1;i<=n;i++){
            if(!m[str[i]]){
                m[str[i]]=1;
                ans++;
            }
        }
        cout<<ans;
        return 0;
    }
    if(k==2){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i==j){
                    continue;
                }
                string gc;
                gc=str[i]+str[j];
                if(!m[gc]){
                    m[gc]=1;
                    ans++;
                }
            }
        }
        cout<<ans;
        return 0;
    }
    if(k==3){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                for(int k=1;k<=n;k++){    
                    if(i==j){
                        continue;
                    }
                    if(j==k){
                        continue;
                    }
                    if(k==i){
                        continue;
                    }
                    string gc;
                    gc=str[i]+str[j]+str[k];
                    if(!m[gc]){
                        m[gc]=1;
                        ans++;
                    }
                }
            }
        }
        cout<<ans;
        return 0;
    }
    if(k==4){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                for(int k=1;k<=n;k++){    
                    for(int l=1;l<=n;l++){
                        if(i==j){
                            continue;
                        }
                        if(i==k){
                            continue;
                        }
                        if(i==l){
                            continue;
                        }
                        if(j==k){
                            continue;
                        }
                        if(j==l){
                            continue;
                        }
                        if(k==l){
                            continue;
                        }
                        string gc;
                        gc=str[i]+str[j]+str[k]+str[l];
                        if(!m[gc]){
                            m[gc]=1;
                            ans++;
                        }    
                    }

                }
            }
        }
        cout<<ans;
        return 0;
    }
    return 0;
}

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

等你来战

查看全部

热门推荐