首页 > 其他 > 详细

牌型种数(2015第六届蓝桥杯B组)

时间:2020-04-29 11:25:49      阅读:50      评论:0      收藏:0      [点我收藏+]
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
 
请填写该整数,不要填写任何多余的内容或说明文字。

暴力循环 (13重循环),反正不用交代码;想不到怎么深搜的时候使用
DFS万岁

DFS
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;  
 5 using namespace std;
 6 int ans = 0, sum = 0;  
 7 void dfs(int cur)    //cur取牌的次数,sum手牌的总数 
 8 {  
 9     if (sum>13)return;  
10     if (cur == 13)  
11     {  
12         if (sum == 13)ans++;  
13         return;  
14     }  
15     else  
16     {  
17         for (int i = 0; i <=4; i++)  //13种牌,每种有4张,有五种取法 取0,1,2,3,4张 
18         {  
19             sum += i;  
20             dfs(cur + 1);  
21             sum -= i;     //还原 
22         }  
23     }  
24 }  
25 int main()  
26 {  
27     dfs(0);  
28     cout<<ans<<endl;
29     return 0;  
30 }  

 

暴力
 1 #include <bits/stdc++.h> 
 2 using namespace std;  
 3 int main()  
 4 {  
 5     int a[13],cnt=0; //a[13] 代表i+1点数牌的张数 
 6     for(a[0]=0;a[0]<=4;a[0]++)  {  
 7         for(a[1]=0;a[1]<=4;a[1]++)  {  
 8             for(a[2]=0;a[2]<=4;a[2]++)  {  
 9                 for(a[3]=0;a[3]<=4;a[3]++)  {  
10                     for(a[4]=0;a[4]<=4;a[4]++)  {  
11                         for(a[5]=0;a[5]<=4;a[5]++)  {  
12                             for(a[6]=0;a[6]<=4;a[6]++)  {  
13                                 for(a[7]=0;a[7]<=4;a[7]++)  {  
14                                     for(a[8]=0;a[8]<=4;a[8]++)  {  
15                                         for(a[9]=0;a[9]<=4;a[9]++)  {  
16                                             for(a[10]=0;a[10]<=4;a[10]++)  {  
17                                                 for(a[11]=0;a[11]<=4;a[11]++)  {  
18                                                     for(a[12]=0;a[12]<=4;a[12]++)  {  
19                                                         if(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]+a[11]+a[12]==13)  {  
20                                                             cnt ++;  
21                                                         }  
22                                                     }  
23                                                 }  
24                                             }  
25                                         }  
26                                     }  
27                                 }  
28                             }  
29                         }  
30                     }  
31                 }  
32             }  
33         }  
34     }  
35     cout << cnt << endl;
36     return 0;  
37 }

 

 

牌型种数(2015第六届蓝桥杯B组)

原文:https://www.cnblogs.com/NoWhiteBut/p/12800699.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!