第六届蓝桥杯A组C/C++ 第七题 手链样式

第六届蓝桥杯A组C/C++ 第七题 手链样式

题目描述:

小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。 他想用它们串成一圈作为手链,送给女朋友。 现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?

输入:

输出:

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

emmm相信大家一看就知道是使用:dfs排列组合:

于是就给大家安利一下高中数学方法:hhh

  • 12!/(3!*4!*5!*12)=2310
  • 5!/(2*2)=30
  • 30+(2310-30)/2=1170

嗯,注意翻转和转动;

解释一下:

第一步:求出没有转动的可能总数;(这个时候还有翻转没有排除)

第二步:翻转与除以2有关:注意:有的串是对称的!将奇数变成偶数之后才能对称,于是,将A、C作为对称轴,(注意,这是平面里面的中心对称)剩下2个A,4个B,4个C两边对称,

第三步:排除对称的求解;

end

(*^▽^*)(*╹▽╹*)~

你可能感兴趣的:(c++练习的水题小结,c++简单算法,蓝桥杯)