两个盒子中球的颜色数相同的概率

思路

根据Hard必死定律,周赛没做出来,继续拜读大佬解题

阅读理解

分析

不出意外的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正在研究中,大家请耐心等待(菜鸡的挣扎)

未完待续。。。