完整的看了一下描述,感觉堆存状态标识那里行不通,要将堆存状态记录下来,需要记录的东西可不少。而且还需要记录所有的可转移状态,那消耗的空间就有点太大了吧,题目中例子都是一些简单转移,画出来的状态结点树状网络图根本说明不了什么。还有就是如何确定两个堆存状态是同一个?建图的节点和路径权重没描述的那么容易,特别是路径又需要挨个判断节点。这玩意代码量蹭蹭上涨
可以实现,但目测算法复杂度是阶乘级,还需要进行优化,比如翻箱子的时候要避免二次翻箱,但感觉也不会优化多少。
思路也很简单,就是提取最先需要的箱子,如果有阻塞箱,就把阻塞箱扔到空处,如果没有空处,则扔到最少阻塞下一个提取的位置
如果你想要代码,那就等谁闲了帮你写吧
先去查询下你可用的字体有哪些?
查询代码如下:
import matplotlib
[f.name for f in matplotlib.font_manager.fontManager.ttflist]
运行结果: