给定正整数 n 和 m 满足 2n−1≤m<2n,如下构造一个带边权的有向图:
图中含有 2n 个节点,编号为 0,...,2n−1。对任意 1≤i≤2n,从 i 号点向 ⌊2i⌋ 号点连一条边权为 0 的边(即一颗满二叉树加上 1→0 的边);对任意 0≤i≤2n,若 iorm=0(其中 or 表示按位异或),则从 i 号点向 ⌊2i⌋+2n−1 号点连一条边权为 1 的边。
问图上的最大比率环。
假设给出的是 m 的二进制表示中 1 的全部位置,并且可以 O(1) 计算 O(logm) 大小的整数之间的运算。
popcount(m)≤2 时问题是简单的,存在 O(1) 算法。最大比率环的一般算法是 O(4n)=O(m2) 的。
问:
- 有没有复杂度低于 O(m2) 的算法?
- 进一步地,有没有关于 popcount(m) 多项式时间复杂度的算法?