根据Hard必死定律,周赛没做出来,继续拜读大佬解题
阅读理解
请计算「两个盒子中球的颜色数相同」的情况的概率。
,比如说盒子1有3种颜色,盒子2也有三种颜色,不管颜色是什么。 这种情况都是符合条件的分析
不出意外的TLE(苦),偶然发现 国际版暴力解法,
居然可以AC!而且代码非常简洁,大佬牛批!
python3
class Solution:
def multinomial(self, n):
return factorial(sum(n))/prod([factorial(i) for i in n])
def getProbability(self, balls):
k, n, Q = len(balls), sum(balls)// 2, 0
arrays = [range(0,i+1) for i in balls]
t = list(product(*arrays))
for i in range(len(t)):
if sum(t[i]) == n and t[i].count(0) == t[-i-1].count(0):
Q += self.multinomial(t[i]) * self.multinomial(t[-i-1])
return Q / self.multinomial(list(balls))
本题TLE优化方案,可以使用动态规划进行求解。dp正在研究中,大家请耐心等待(菜鸡的挣扎)
未完待续。。。