小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。
他想用它们串成一圈作为手链,送给女朋友。
现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?
请你提交该整数。不要填写任何多余的内容或说明性的文字。
简单的排列组合,我在前两场的比赛中都出了排列组合的题(数三角形),有心的童鞋应该好好看看组合数学。这道题的思路是如果把所有的玛瑙看做不同的话应该用(3+4+5)!种,再除掉重复的需要除以3!4!5!(想想为啥)。在考虑到环形,可以先固定第一颗,答案是(3+4+5-1)!/(2!+4!+5!)+(3+4+5-1)!/(3!+3!+5!)+(3+4+5-1)!/(3!+4!+4!)
#include <cstdio>
int juchen(int a) {
int b = 1;
for(int i = 1; i<=a; i++) {
b *= i;
}
return b;
}
int main () {
int zi = juchen(3+4+5-1);
int a = juchen(2)*juchen(4)*juchen(5);
int b = juchen(3)*juchen(3)*juchen(5);
int c = juchen(3)*juchen(4)*juchen(3);
printf("%d\n",zi/a+zi/b+zi/c);
return 0;
}
答案是62370