【BZOJ2729】【HNOI2012】排隊(duì) 組合數(shù) 數(shù)論 Python高精度
來源:程序員人生 發(fā)布時(shí)間:2015-01-28 08:30:01 閱讀次數(shù):3427次
轉(zhuǎn)載請(qǐng)注明出處謝謝:http://blog.csdn.net/vmurder/article/details/42964151
題解:
代碼里面有注釋。
注意:
Python2中的中文字符即便注釋了,也會(huì)CE(固然,由于Python是直接運(yùn)行,不編譯,所以顯示W(wǎng)A)
呃,而本地的Python3就不管它了。。
所以我的代碼需要?jiǎng)h掉中文注釋再交233。
代碼:
# n!(A(n+1,2)*A(n+3,m)+2*(n+1)*A(n+2,m⑴)*m)
# 首先男生隨意放 這樣是n!種擺法。
# 然后再加上倆老師,就有了n+3個(gè)放女生的位置,
# 也就是女生有A(n+3,m)種放法,但是老師的位置則應(yīng)當(dāng)是A(n+1,2)
# 然后若兩老師扔到男生中時(shí)重復(fù)了,那末就需要中間插個(gè)女生
# 也就是女生有A(n+2,m⑴)種插法,而老師則是(n+1)種方法,
# 注意此時(shí)需要枚舉是哪一個(gè)女生被放到老師中間,這有m種情況。
# 呃,兩個(gè)老師也是不同的,所以此時(shí)需要再*2
# 這兩種老師的放法是不重復(fù)且包括所有情況的
# 也就是我們?cè)偃缟鲜鎏幚韮煞N老師放法時(shí)女生的排列數(shù)
# 就能夠出解且包括所有情況。
# By YGY(id:18357)
def mul(x, y):
re = 1
for i in range (x, y + 1):
re = re * i
return re
n, m = raw_input().split()
n = int(n); m = int(m)
#print(mul(1,n)*((n+1)*n*mul(n+3-m+1,n+3)+2*(n+1)*m*mul(n+2-m+2,n+2)))
print(mul(1,n+1)*mul(n+4-m,n+2)*(n*(n+3)+2*m))
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)