蒟蒻求助,50分超时
查看原帖
蒟蒻求助,50分超时
663693
chenjieyang楼主2022/8/28 15:16
#include<iostream>
#include<string>
#include<iomanip>
#include<algorithm>
#include<cmath>
#define rep(i,a,b) for(ull i=a;i<=b;i++)
#define ull unsigned long long
using namespace std;
ull a[30]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
ull n,r,b[30][30],c[30],head=1;
bool k(ull n){
    for(int i=1;i<=r;i++){
        if(b[n][i]!=c[i])return true;
    }
    return false;
}
bool cheak(){
    for(int i=1;i<=head;i++){
        if(!k(i))return false;
    }
    return true;
}
int main(){
    cin>>n>>r;
    do{
        for(ull i=1;i<=r;i++){
            c[i]=a[i];
        }
        sort(c+1,c+r+1);
        if(cheak()){
            for(int i=1;i<=r;i++)cout<<setw(3)<<a[i];
            cout<<endl;
            for(int i=1;i<=r;i++){
                b[head][i]=a[i];
            }
            head++;
        }
    }while(next_permutation(a+1,a+n+1));
    return 0;
}
2022/8/28 15:16
加载中...