2015第6届蓝桥杯A组第7题 手链样式 题解

题目:
手链样式
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢? 请你提交该整数。不要填写任何多余的内容或说明性的文字。

思路1:
DFS;递归深度为12(一共的位置),每个位置能选到的种类数为3:红珊瑚、白珊瑚、黄玛瑙;递归出口为要选择的位置到头了,全都选满;
因为是手串,是圆形的排列,得出的结果最后除以12

思路2:高中的排列组合,用数学公式算即可,得出的结果除以12

思路3:用递归,f(a,b,c,sum) = f(a - 1,b,c,sum -1) + f(a,b - 1,c,sum - 1) + f(a, b, c - 1,sum -1);得出的结果除以12
a,b,c分别是红珊瑚,白珊瑚,黄玛瑙的个数(还剩下的可选择的个数)
sum是已经选择的总的个数
(解法跟2017年蓝桥杯真题 字母组串 代码填空给的解法一致)

答案:2310

Code:


#include<bits/stdc++.h>
using namespace std;
int cnt = 0;

int  getnum(int a, int b, int c,int sum
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值