acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解,求关注

    userId_undefined

    小桂子GUINEVERE

    荣耀黄金
    7阅读
    0回复
    0点赞
  • 27

    #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++; // 结果总数 + 1 return; // 这个层次不用再找了 } for (int i = 1; i <= n; i++) // 枚举每一种情况 { if ((!b[i]) && (a[k][i])) // 满足条件 { b[i] = true; // 保存结果 dfs(k + 1); // 递归 b[i] = false; // 回溯 } } } int main() { int i, j; char c; }

    userId_undefined

    我

    倔强青铜
    0阅读
    0回复
    0点赞
  • 还是比较简单的

    #include<bits/stdc++.h> using namespace std; char love[21][21];int n; bool ss[21]; unsigned long long cnt; void dfs(int now){ if(nown){cnt++;return;} for(int i=1;i<=n;++i){ if(love[now+1][i]'1'&&!ss[i]){ ss[i]=1; dfs(now+1); ss[i]=0; } } } int main(){ cin>>n; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) cin>>love[i][j]; dfs(0); cout<<cnt; return 0; }

    userId_undefined

    Xylophone

    荣耀黄金
    0阅读
    0回复
    0点赞
首页