题目:
手链样式
小明有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

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



