如何以尽可能低的时间复杂度检测网格中的周期
How to detect a cycle in a grid in least time complexity possible?
我有一个最多 35 个字符的网格,它可能(1x35..5x7) 或其他任何东西.网格上每个单元格的值只能是二进制的。在模拟具有某些动作的游戏时,这意味着移动后等级状态可能会发生变化。如果我必须检测这个游戏的周期/周期,我可以在尽可能低的时间复杂度内使用什么算法/数据结构?我尝试了一种基于 log n 树的方法来存储网格的状态,但当周期大于 2^17 时,它对于我的目的来说不够快。 有没有一种技术可以在不占用太多内存的情况下对网格状态执行哈希?
网格是一个 35 位数字,因此您可以将网格存储为整数(在 64 位计算机上)或将 2 个单词存储在较小的数字上。 您可以将已经看到的状态保存在巨大的直接地址数组或哈希表中。
相关文章:
- 使用CMake检测支持的C++标准
- 当套接字连接断开时检测C/C++Unix
- C/C++预处理器是否可以检测一些编译器选项
- WMI检测进程创建事件-c++
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 下面是我为检测链接列表中的循环而制作的代码
- 落砂模拟碰撞检测C++和SFML
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?
- 为什么C++编译器没有检测到正确声明的类?
- 检测win32服务创建和删除的最佳方法
- 正在LLVM中检测整数比较条件
- 如何在鼠标挂钩过程中检测拖动
- 位移操作和位掩码未检测到重复字符
- C 递归以在网格的行和列中检测重复
- 使用C 中的单元格 /图块 /网格进行碰撞检测的最佳数据结构
- 如何以尽可能低的时间复杂度检测网格中的周期
- 如何进行正确的二维网格到圆碰撞检测
- 检测和删除一个网格的隐藏表面
- 关于GLM网格中的碰撞检测
- 分组网格上的Ogre碰撞检测