关于翻箱问题的具体程序

https://blog.csdn.net/devcloud/article/details/113876392?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%A0%86%E5%9C%BA%E7%BF%BB%E7%AE%B1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-113876392.142^v82^wechat_v2,201^v4^add_ask,239^v2^insert_chatgpt&spm=1018.2226.3001.4187
翻箱问题,求Python程序按以上思路实现,谢谢。

完整的看了一下描述,感觉堆存状态标识那里行不通,要将堆存状态记录下来,需要记录的东西可不少。而且还需要记录所有的可转移状态,那消耗的空间就有点太大了吧,题目中例子都是一些简单转移,画出来的状态结点树状网络图根本说明不了什么。还有就是如何确定两个堆存状态是同一个?建图的节点和路径权重没描述的那么容易,特别是路径又需要挨个判断节点。这玩意代码量蹭蹭上涨

可以实现,但目测算法复杂度是阶乘级,还需要进行优化,比如翻箱子的时候要避免二次翻箱,但感觉也不会优化多少。

思路也很简单,就是提取最先需要的箱子,如果有阻塞箱,就把阻塞箱扔到空处,如果没有空处,则扔到最少阻塞下一个提取的位置

如果你想要代码,那就等谁闲了帮你写吧