【发布时间】:2019-06-13 11:04:29
【问题描述】:
给定一个 n 位向量和一个整数 k,1
- 准确选择k位(不一定是连续的)并翻转它们的状态(0到1、1到0);
经过分析,我得出结论,如果n > k,我们也可以同时翻转任意两位。例如对于 n = 5,k = 4。我们可以做这样的事情来只翻转最后两位。
- xxxx_
- xxx_x
'x'表示我们在那个位置翻转位。
但我不知道在那之后如何进行,我无法进行更多观察。那么,正确的方法是什么?你可以假设一个 n^2 算法是可行的。
【问题讨论】:
-
如果 n-k 很小,那么简单的 O(n^k) 方法可能足够快,
-
@MrSmith42 遗憾的是,不能保证 n - k 足够小。尽管如此,你能分享幼稚的解决方案吗?我无法想象任何蛮力。
-
This question 应该会给你一个好的开始。
标签: algorithm mathematical-optimization bit bitstring