1 条题解
-
0fried_chickem LV 3 @ 2022-08-03 18:26:24
#include<bits/stdc++.h>
using namespace std;
int n,ans=0;
char mp[21][21];
bool vis[21];
void dfs(int dep,int a){
if(dep>n||dep<1) return;
for(int i=1;i<=n;i++){
if(mp[dep+1][i]=='1'&&vis[i]==0){
vis[i]=1;
if(dep+1==n) ans++;
else dfs(dep+1,i);
vis[i]=0;
}
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) cin>>a[i][j];
}for(int i=1;i<=n;i++){
if(a[1][i]=='1'){
vis[i]=1;
dfs(1,i);
}
}cout<<ans;
return 0;
}
- 1