求01背包的第k大解
摘要:
这是一道求背包问题第k次大解。思路稍有点变法,就是在递归的过程中,分别用两个数组记录两种状态(选择或不选择),并且只要记录前k次。在这两个数组中都是前k次可能的最优解。所以我们只要把这两个数组做比较,一直排到k就行了,另外,对于递归问题,我们只要抓住某个状态的前后关系,把复杂问题简单化,不必去纠结全过程的状态,应为程序在运行时,递归过程是用堆栈实现的,其变化复杂,没必要每步弄懂。重点在于抓住前后规律和设计思路就可以了。#include<stdio.h>#include<string.h>int dp[1001][50],wi[100],di[100]; int n,m, 阅读全文
posted @ 2013-04-14 16:40 青竹士 阅读(248) 评论(1) 推荐(0) 编辑