【BZOJ2729】【HNOI2012】排隊 組合數 數論 Python高精度
來源:程序員人生 發布時間:2015-01-28 08:30:01 閱讀次數:3436次
轉載請注明出處謝謝:http://blog.csdn.net/vmurder/article/details/42964151
題解:
代碼里面有注釋。
注意:
Python2中的中文字符即便注釋了,也會CE(固然,由于Python是直接運行,不編譯,所以顯示WA)
呃,而本地的Python3就不管它了。。
所以我的代碼需要刪掉中文注釋再交233。
代碼:
# n!(A(n+1,2)*A(n+3,m)+2*(n+1)*A(n+2,m⑴)*m)
# 首先男生隨意放 這樣是n!種擺法。
# 然后再加上倆老師,就有了n+3個放女生的位置,
# 也就是女生有A(n+3,m)種放法,但是老師的位置則應當是A(n+1,2)
# 然后若兩老師扔到男生中時重復了,那末就需要中間插個女生
# 也就是女生有A(n+2,m⑴)種插法,而老師則是(n+1)種方法,
# 注意此時需要枚舉是哪一個女生被放到老師中間,這有m種情況。
# 呃,兩個老師也是不同的,所以此時需要再*2
# 這兩種老師的放法是不重復且包括所有情況的
# 也就是我們再如上述處理兩種老師放法時女生的排列數
# 就能夠出解且包括所有情況。
# 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))
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈