- 填数游戏
- 2021-06-13 15:45:35 @
目前我用的是排列组合的函数来枚举的
想问一下有什么问题
#include<iostream>
using namespace std;
int f(int x){
int ans=0;
for(int i=1;i<=x;i++)ans*=i;
return ans;
}
int array_compare(int *a,int *b,int *c,int length){
for(int i=0;i<length;i++){
if(a[i]==c[i]||b[i]==c[i])return 0;
}
return 1;
}
int main(){
int n,ans=0;
cin>>n;
int a[n],b[n],c[n];
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++)cin>>b[i];
for(int i=1;i<=n;i++)c[i-1]=i;
for(int i=0;i<f(n);i++){
next_permutation(c,c+n);
ans+=array_compare(a,b,c,n);
}
cout<<ans;
return 0;
}
0 条评论
目前还没有评论...