本蒟蒻不知怎优化,求大佬救救
附上代码
#include<bits/stdc++.h>
using namespace std;
int ans=0;
int n,k;
int a[101];
inline void check(){
int pd=0;
for(int i=1;i<=n;++i){
for(int j=i+1;j<=n;++j){
if(a[i]<a[j]){
pd++;
}
}
}
if(pd==k) ans++;
}
bool pd[101];
void search(int x){
if(x==n){
check();
}
else{
for(int i=1;i<=n;++i){
if(pd[i]){
a[x+1]=i;
pd[i]=false;
search(x+1);
pd[i]=true;
}
}
}
return;
}
signed main(){
memset(pd,true,sizeof pd);
cin>>n>>k;
for(int i=1;i<=n;++i){
a[1]=i;
pd[i]=false;
search(1);
pd[i]=true;
}
cout<<ans%10000<<'\n';
system("pause");
}