首页 > 解决方案 > 打印包含 1 和 0 的 4 x 5 电路板的所有配置,没有三个 1 连续或对角线,同时填充尽可能多的 1

问题描述

显然,产生 2^20 种可能的配置并从那里消除是不理想的。我曾考虑过从电路板的一角(动态编程)构建问题,但在保存所有可能的配置时遇到了麻烦。任何帮助将不胜感激!

标签: javaalgorithm

解决方案


您真的不必担心内存不足。您可以将单个板打包到 int 中。所有可能使用的板的内存总量将约为 5MB。所以你不应该有任何问题,只是蛮力解决问题。

记住一句金句,先蛮力,再聪明。

所以你会做的是这样的事情来访问各个位:

read_bit(int bit) {
 return (bitpack >> bit) & 0x01;
}

write_bit(int bit, int value) {
 bitpack = (bitpack) | ((value & 0x01) << bit);
}

推荐阅读