状态压缩动态规划为何能用一个整数表示整个集合从旅行商问题到LeetCode完整通关指南

1962年,Michael Held和Richard Karp在《Journal of the Society for Industrial and Applied Mathematics》上发表了一篇论文,提出了用动态规划求解旅行商问题(TSP)的算法。这个算法的时间复杂度是 $O(n^2 \cdot 2^n)$——虽然仍然是指数级,但相比暴力枚举的 $O(n!)$,已经是一个巨大的飞跃。这个算法的核心思想,正是后来被称为"状态压缩动态规划"(Bitmask DP / State Compression DP)的开山之作。 ...

13 min · 6059 words

位运算为何能让一行代码抵十行循环从底层原理到LeetCode完整通关指南

假设你需要统计一个整数二进制表示中1的个数。最直观的想法是:转成二进制字符串,遍历统计每个字符——代码大概十行左右。但如果告诉你,用一行循环就能搞定,甚至不需要字符串转换呢? ...

11 min · 5181 words