1 条题解

  • 0
    @ 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

信息

难度
9
分类
搜索 点击显示
标签
递交数
5
已通过
2
通过率
40%
上传者