[正经题解]分书问题
2026-04-20 20:49:11
发布于:浙江
0阅读
0回复
0点赞
很简单,不多说了。
#include<iostream>
#define SIZE 25
using namespace std;
bool a[SIZE][SIZE], b[SIZE];
int res, n;
void dfs(int k){
if(k>n){
res++;
return;
}
for(int i=1;i<=n;i++){
if((!b[i])&&(a[k][i])){
b[i]=true;
dfs(k+1);
b[i]=false;
}
}
return;
}
int main(){
int i,j;
char c;
cin >> n;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
cin>>c;
if(c=='1'){
a[i][j]=true;
}
}
}
dfs(1);
cout<<res<<endl;
return 0;
}
这里空空如也







有帮助,赞一个