美文网首页
每个人戴不同帽子

每个人戴不同帽子

作者: 小幸运Q | 来源:发表于2021-03-30 11:05 被阅读0次

image.png

i表示帽子1->40,j代表二进制下人的状态,dp[i][j]代表帽子i对应的人的分配状态j下的解个数,最终的结果是最后顶帽子确定是否戴且所有人都有帽子情况下的解个数dp[-1][-1]

dp[i][j]可以选择不戴帽子i=dp[i-1][j],可以选择人k戴帽子i=dp[i][j-(1<<k)]

class Solution:
    def numberWays(self, hats: List[List[int]]) -> int:
        hat2people=[[] for i in range(41)]
        hatslen=(1<<(len(hats)))
        dp = [[0] * hatslen for i in range(41)]
        for i in range(len(hats)):
            for j in hats[i]:
                hat2people[j].append(i)
        dp[0][0]=1
        mod=10**9+7

        for i in range(1,41):
            for j in range(hatslen):
                dp[i][j]=dp[i-1][j]
                for k in hat2people[i]:
                    if(j&(1<<k)>0):
                        dp[i][j]+=dp[i-1][j-(1<<k)]
                dp[i][j]%=mod
                print(i,j,dp[i][j])
        return dp[-1][-1]

相关文章

  • 每个人戴不同帽子

    i表示帽子1->40,j代表二进制下人的状态,dp[i][j]代表帽子i对应的人的分配状态j下的解个数,最终的结果...

  • 戴不同帽子的老爸

    戴不同帽子的老爸 (美国)汤姆·伦纳德 陈荣生 译 老爸戴两顶帽,他这样做的缘由是这样的: “汤姆...

  • 原来戴上帽子不容易啊

    如果我们每个人必须给自己戴上一顶帽子,你会戴哪一种,又会如何戴? 因为戴帽子也是一种“定位”,所以戴帽子不容易的。...

  • 为什么乔峰总是戴着帽子。

    帽子有很多,各种各样的帽子,有些是自己想戴的,有些是老婆给戴的,自己戴是为了保暖,老婆戴的指不定是啥帽子了...

  • 复述故事

    从前,有一家方帽子店,大人们只做方帽子,只买方帽子,只戴方帽子。 我小孩却不喜欢带戴方帽子,想戴圆...

  • 穿衣变化

    记得我小时候,一到冬天,人们都会戴帽子。什么棉帽子,单帽子,狗皮帽子的都有。 大人小孩都戴,男的几乎都戴。 可是,...

  • 放达

    放达 帽子可以反着戴

  • 摘星之戴歇后语

    戴马桶坐大堂——赃(脏)官 戴特大帽子穿小鞋——头重脚轻 戴着斗笠打伞——多此一举 戴着斗笠亲嘴——差着一帽子 戴...

  • 【童话新编】后来的故事(7/7)

    故事七:隐身帽 原文回放: 她试戴了赤尔诺魔的帽子…… 把帽子转过去转过来, 她把帽子压在眉毛上,正着戴,歪着戴...

  • 【平民哲学】十一、你的哲学从哪里开始

    你的哲学,当然地从头开始。哲学是一顶帽子,你可以戴也可以不戴。只是你戴与不戴,其实你都有一顶帽子,因为它是哲学。 ...

网友评论

      本文标题:每个人戴不同帽子

      本文链接:https://www.haomeiwen.com/subject/apuwhltx.html