优先队列分支限界法求01背包——手写堆140行——priority_queue 100行
算法设计与分析的作业,老实说,这个方法挺强的,但是网上的参考基本都是指针+课设,而且解释不清晰,真心难参考····,这里我尽可能简单的重述思路和代码。
01背包是个老问题,n个物品,每个物品装或者不装,每个物品都有自己的价值。问在背包容量范围内能装入的物品的最大总价值。
正常做法是DP。当然,dfs,bfs也能写,问题就是太慢了,时间复杂度O(2^n),这谁顶得住啊。
开始正题
与其他方法的比较
考虑二叉树解决01背包,取和不去两种状态分别用左孩子和右孩子表示,所有状况表示成一颗二叉树。普通bfs就是逐层处
原创
2020-06-21 23:21:01 ·
439 阅读 ·
0 评论