问题描述
问题描述
您好,我正在重新编写一个解决nonograms的旧程序。 作为解决方案的一部分,我(针对某些行)生成了一种将数字适合所有可能方式的数组。
我想创建一段代码,它将合并所有可能的位置。
含义,例如,伪代码:
[[0,1],[1,[0,1,1]]
OR - [1,1]
AND - [0,1]
这两个操作的结果将使我确切地知道固定值在哪里。
[?,?,1]
假设
可能的解决方案
#include <vector>
#include <iostream>
using namespace std;
int main() {
vector<vector<bool>> options =
{{false,false,true},{true,{false,true,true}};
vector<bool> merge_and,merge_or;
bool flag;
int i,j;
for (i = 0; i < options.size(); i++) {
for (j = 0; j < options[0].size(); j++) cout << options[i][j];
cout << endl;
}
cout << endl;
for (i = 0; i < options[0].size(); i++) {
flag = options[0][i];
for (j = 1; j < options.size(); j++) {
flag = flag & options[j][i];
}
merge_and.push_back(flag);
}
for (i = 0; i < options[0].size(); i++) {
flag = options[0][i];
for (j = 1; j < options.size(); j++) {
flag = flag | options[j][i];
}
merge_or.push_back(flag);
}
cout << "AND ";
for (const auto &i : merge_and) cout << i;
cout << endl;
cout << "OR ";
for (const auto &i : merge_or) cout << i;
cout << endl;
}
输出:
001
101
011
AND 001
OR 001
其他元数据
如果有人对完整的实现感兴趣,请在完成并完整记录后将其上传到我的GitHub account。
预先感谢帮助者和评论员。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)