【发布时间】:2017-01-02 06:14:30
【问题描述】:
我需要一种快速的方法来查找长度为n 的所有二进制字符串,这些字符串的位在m 位置是固定的。一个C++11 兼容函数,它采用例如std:map,其中键为固定位的位置并为固定位的值赋值。输出std::bitset<n>s 或std::vector<n> 的向量会很好。例如一个函数:
std::vector< std::bitset<n> > compatible(int n, const std::map<int,bool>& fix)
例如,如果n=3 并且我们将第二位固定为 1,那么答案应该是
{{0,1,0},{0,1,1},{1,1,0},{1,1,1}}
顺序无关紧要。
如果另一个数据结构更快,那么我更喜欢速度。此外,如果n < 50 可以在 64 位架构上实现显着加速,那么这也会很有趣。
【问题讨论】: