蓝桥杯 牌型种数 (dfs)--------------------Five-菜鸟级

举报
Fivecc 发表于 2022/08/06 00:25:50 2022/08/06
【摘要】                                               &nbsp...

                                                 牌型种数

小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

请填写该整数,不要填写任何多余的内容或说明文字。

 

思路:比较简单  用dfs  或则 13层for 循环 就好了 

一共是52张牌,不算花色的话就是13种类型,我用0~12来编号。 就想着 所有牌按顺序排好等你去取

                                          0     1    2     3     4     5    6    7   8    9   10   11    12 

                                          0     1    2     3     4     5    6    7   8    9   10   11    12 

                                          0     1    2     3     4     5    6    7   8    9   10   11    12 

                                          0     1    2     3     4     5    6    7   8    9   10   11    12

  入口 (这里开始,也就是第0层)

           然后开始拿 牌  拿牌 无非就是 拿 或者不拿 如果拿 你想拿几张。

           当你在第num层的时候 你有 5 个选择 拿0张 (不拿) 拿1张  拿2张 拿3张 拿4张

                                                                (当然这是在满足一定条件下的,条件就是 你牌未拿满13张 )

         

 看代码吧 有解释  这就是暴力的dfs   结果:3598180


  
  1. #include<stdio.h>
  2. int res=0;
  3. void dfs(int num,int count){
  4. // num 代表 取牌的数值 0~12 分别代表13张牌 count代表 你手中的牌
  5. if(count>13||num>13)return;
  6. //退出条件 你拿到的牌超过了13张 或则 你拿到的牌的数值超过了13
  7. if(count==13) res++;//在满足条件的情况下 拿到牌刚好13 张 算一种方案
  8. else{
  9. for(int i=0;i<=4;i++)
  10. // 每一个数值的牌你取到的可能情况有 0(没取这个数值的牌) 1(取了一张) 2 3 4
  11. dfs(num+1,count+i);
  12. // num+1 这种情况 考虑完了 考虑下个数值的牌 count+i 你手上多了 i 张 数值为 num的牌
  13. }
  14. }
  15. int main()
  16. {
  17. dfs(0,0);// 刚开始 获得了0张牌
  18. printf("%d\n",res);
  19. return 0;
  20. }

 

文章来源: fivecc.blog.csdn.net,作者:Five-菜鸟级,版权归原作者所有,如需转载,请联系作者。

原文链接:fivecc.blog.csdn.net/article/details/84981398

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。