尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Kimi LeetCode 3530. 有向无环图中合法拓扑排序的最大利润 Python3实现

Kimi   LeetCode 3530. 有向无环图中合法拓扑排序的最大利润 Python3实现
📅 发布时间:2026/7/13 0:05:18

以下是 LeetCode 3530 有向无环图中合法拓扑排序的最大利润 的 Python3 实现。

思路概述

- `n ≤ 22`,使用状压 DP(Bitmask DP)。
- `need[i]`:节点 `i` 的所有直接前驱的位掩码。
- `dp[mask]`:已经选了 `mask` 中这些节点,能获得的最大利润。
- 转移时,已选节点数为 `popcount(mask)`,下一个位置为 `pos = bitCount + 1`。枚举所有不在 mask 中且所有前驱都已选的节点 `i`,更新 `dp[mask | (1<<i)]`。
- 最终答案为 `dp[(1<<n) - 1]`。

复杂度

- 时间:`O(2^n · n)`,由于 `n ≤ 22`,约为 `2200` 万级别。
- 空间:`O(2^n)`

完整代码

```python
class Solution:
def maxProfit(self, n: int, edges: List[List[int]], score: List[int]) -> int:
max_mask = 1 << n

# need[i] = 节点 i 的所有前驱节点的位掩码
need = [0] * n

# dp[mask] = 已选 mask 中节点时的最大利润
dp = [-1] * max_mask
dp[0] = 0

# 构建前驱掩码
for u, v in edges:
need[v] |= 1 << u

for mask in range(max_mask):
if dp[mask] == -1:
continue

pos = mask.bit_count() + 1 # 下一个位置(1-based)

for i in range(n):
# i 不在 mask 中,且 i 的所有前驱都已在 mask 中
if (mask & (1 << i)) == 0 and (need[i] & mask) == need[i]:
next_mask = mask | (1 << i)
dp[next_mask] = max(dp[next_mask], dp[mask] + score[i] * pos)

return dp[max_mask - 1]
```

关键点说明

1. `need[i]` 的构建:`need[v] |= 1 << u` 表示节点 `u` 必须在 `v` 之前。转移条件 `(need[i] & mask) == need[i]` 等价于 `need[i]` 是 `mask` 的子集,即 `i` 的所有前驱都已处理。
2. 位置计算:`pos = mask.bit_count() + 1`,因为 `mask` 中已有 `bit_count()` 个节点,下一个节点自然排在第 `bit_count() + 1` 位。
3. DP 初始化:`dp[0] = 0`,其余为 `-1` 表示不可达。由于 `score[i] ≥ 1` 且 `pos ≥ 1`,利润恒为正,`-1` 作为不可达标记是安全的。
4. 枚举顺序:按 `mask` 从小到大枚举,保证每个状态只被前面的状态更新一次。

相关新闻

  • Cocos Creator UI开发实战:开心消消乐界面设计与交互实现
  • 4 权限控制DCL操作
  • 如何搭建PUBG地图黑客:从零开始的完整教程

最新新闻

  • 洛雪音乐播放失效?3步快速恢复六音音源完整教程
  • 3步解决QQ音乐加密格式转换难题:QMCDecode让音乐重获自由
  • Windows服务器安全守护神:Wail2Ban自动封锁工具终极指南
  • 亲身到店探访杭州亨得利官方名表服务中心|详细地址与售后电话(2026年7月更新) - 亨得利官方
  • SAM 2 图像分割实战:自动 Mask、框提示和点提示完整演示
  • ChatGPT系统提示词实战手册:从入门到精通的5类核心模板,97%的开发者都漏掉了第3类!

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号