Day72力扣打卡

打卡记录

参加考试的最大学生数(压缩状态DP)

链接

python 复制代码
class Solution:
    def maxStudents(self, seats: List[List[str]]) -> int:
        m, n = len(seats), len(seats[0])
        # a[i] 是第 i 排可用椅子的下标集合
        a = [sum((c == '.') << j for j, c in enumerate(s)) for s in seats]
        f = [[0] * (1 << n) for _ in range(m)]
        for j in range(1, 1 << n):
            lb = j & -j
            f[0][j] = f[0][j & ~(lb * 3)] + 1
        for i in range(1, m):
            j = a[i]
            while j:  # 枚举 a[i] 的子集 j
                f[i][j] = f[i - 1][a[i - 1]]  # 第 i 排空着
                s = j
                while s:  # 枚举 j 的子集 s
                    if (s & (s >> 1)) == 0:  # s 没有连续的 1
                        t = a[i - 1] & ~(s << 1 | s >> 1)  # 去掉不能坐人的位置
                        f[i][j] = max(f[i][j], f[i - 1][t] + f[0][s])
                    s = (s - 1) & j
                j = (j - 1) & a[i]
            f[i][0] = f[i - 1][a[i - 1]]
        return f[-1][a[-1]]
相关推荐
小肝一下4 小时前
1.大模型介绍
python·langchain·大模型·ollama·langgrap
xiangjiaodalishi4 小时前
从 0 到 1 搭建 AI 友好的网站结构:信息架构与 GEO 的交叉地带
人工智能·python
凯瑟琳.奥古斯特4 小时前
OCR文字检测算法对比解析
开发语言·python·职场和发展
Misnice4 小时前
Python 内置函数大全
开发语言·windows·python
沉下心来学鲁班4 小时前
具身智能进阶:让 MicroDuck 踩着高跷走路
人工智能·python·机器人
comedate4 小时前
【AI】Jev API 接入实战:用 Python 调用 TypeSafe Jev 做结构化判断
人工智能·python·jev·typesafe·快速判断模型
cc_瀚海知行5 小时前
工具调用 6|助手什么时候该停下来?
java·服务器·前端·人工智能·python·ai
?abc!5 小时前
(动态规划+DFS)494. 目标和
算法·深度优先·动态规划
信奥卷王5 小时前
[GESP202406 六级] 二叉树(含视频)
数据结构·算法
溪语流沙5 小时前
【Web全栈进阶】Nginx反向代理 + HTTPS:正式上线
前端·vue.js·python·nginx·https·fastapi