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

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

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

    userId_undefined

    法兰西玫瑰

    倔强青铜
    46阅读
    0回复
    2点赞
  • 【正经题解】组合数的生成

    定义两个数组: combinationcombinationcombination 用来存储当前组合的数字, visitedvisitedvisited 用来标记数字是否已经被选择。 使用递归函数 generateCombinationsgenerateCombinationsgenerateCombinations 生成组合。 在递归函数中,如果当前组合已经选择了 rrr 个数字,就输出这个组合并返回。 在每一层递归中,遍历可选的数字,如果该数字未被选择且满足当前组合的递增条件,选择这个数字,继续递归下一层。 递归完成后,取消对当前数字的选择,回溯到上一层,继续遍历其他可选的数字。

    userId_undefined

    AC君

    管理员
    倔强青铜
    15阅读
    0回复
    0点赞
  • 递归 + 全排列改版

    userId_undefined

    回来看看

    倔强青铜
    14阅读
    0回复
    0点赞
  • AC answer

    #include <bits/stdc++.h> using namespace std; int n,r; int a[25]; bool vis[25]; void dfs(int dep,int last) { if(dep>r) { for(int i=1;i<=r;i++) cout<<a[i]<<" "; cout<<'\n'; return; } for(int i=last+1;i<=n;i++) if(!vis[i]) { vis[i]=true; a[dep]=i; dfs(dep+1,i); vis[i]=false; } } void work() { cin>>n>>r; dfs(1,0); } int main() { work(); return 0; }

    userId_undefined

    Voldemort

    倔强青铜
    6阅读
    0回复
    0点赞
  • algorithm诚不欺我

    next_permutationnext\_permutationnext_permutation才是永远的神!

    userId_undefined

    亚洲卷王 AK IOI

    尊贵铂金
    5阅读
    0回复
    0点赞
首页