Wannafly挑战赛16 A 取石子(全排列)


解析:

取石子都是一个个取的。
所以在第一袋里取2个就可以看成是在取上一袋和取下一袋之间间隔2个1
这样(a+b+c+d)!表示每一个石子都不同的取的方案数。
但同一袋的石子数是相同的,所以除上a!(因为多乘上了同一袋石子的变化的方案数,即同一袋石子在总的位置上确定后只有一种情况,但之前算的时候多乘上了a!)。b,c,d同理

import math
"""
a,b,c,d=raw_input().strip().split()
a=int(a)
b=int(b)
c=int(c)
d=int(d)
"""
a,b,c,d=map(int,raw_input().split())
ans=math.factorial(a+b+c+d)
ans1=math.factorial(a)
ans2=math.factorial(b)
ans3=math.factorial(c)
ans4=math.factorial(d)
print(ans//ans1//ans2//ans3//ans4%1000000007)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值